jigganMedlem sedan juni 2003181 inlägg Ja, jag har fått ett litet problem med mina if satser. De är till för att kontrollera ett par formulär innan informationen sparas.
Ibland fungerar dem men ibland verkar det som att dem bara hoppas över på något vis. De ser ut så här:
if ($_POST['y'] == "0")
{
header("Location:index.php?section=regga&y=fel");
}
if ($_POST['m'] == "0")
{
header("Location:index.php?section=regga&m=fel");
}
if ($_POST['d'] == "0")
{
header("Location:index.php?section=regga&d=fel");
}
if ($_POST['lan'] == "0")
{
header("Location:index.php?section=regga&lan=fel");
}
Någon som vet varför det inte fungerar ibland?
SnakesMedlem sedan okt. 2004386 inlägg 1. Vad är dem för fält?
2. Vilka fungerar vilka inte....
3. Felmeddelande?
4. Testa med:
if (strlen($_POST['y']) == 0)
{
header("Location:index.php?section=regga&y=fel");
}
if (strlen($_POST['m']) == 0)
{
header("Location:index.php?section=regga&m=fel");
}
if (strlen($_POST['d']) == 0)
{
header("Location:index.php?section=regga&d=fel");
}
if (strlen($_POST['lan']) == 0)
{
header("Location:index.php?section=regga&lan=fel");
}
Det borde kanske funka!
DufferMedlem sedan mars 2003409 inlägg jag håller nog med snakes... just nu kolla scriptet ifall man skrivit 0 inte ifall den är "noll"...
Om du upplever problem med att den fortsätter och reggar datan i databasen kan du ju köra en exit för att vara på säkra sidan att den inte utför något mer...
jigganMedlem sedan juni 2003181 inlägg Asså det är ett sånt är Select formulär där value = 0 om man inte har ändrat. Kotrollen funkar ibland och man kommer tillbaka och får ett felmeddelande men inte alltid.
SnakesMedlem sedan okt. 2004386 inlägg Testa att byta 0 till nåt annat, typ "noll"...
if ($_POST['y']] == "noll")
{
header("Location:index.php?section=regga&y=fel");
}
if ($_POST['m'] == "noll")
{
header("Location:index.php?section=regga&m=fel");
}
if ($_POST['d'] == "noll")
{
header("Location:index.php?section=regga&d=fel");
}
if ($_POST['lan'] == "noll")
{
header("Location:index.php?section=regga&lan=fel");
}
jigganMedlem sedan juni 2003181 inlägg Snakes snackar du i nattmössan nu eller? :P
<select name="y">
<option value="0">År
<option value="1990">1990
Ja osv...Så default blir det ju 0 om man inte ändrat. Men varför fungerar det ibland?
SnakesMedlem sedan okt. 2004386 inlägg byt
<option value="0">År
mot
<option value="noll">År
och kör scriptet där uppe
jigganMedlem sedan juni 2003181 inlägg Funkar tyvärr inte ändå. Några andra tips?
SnakesMedlem sedan okt. 2004386 inlägg Alltså hur menar du funkar inte?.... ge gärna länk....
Menar du kanske att den säger att bara 1 är fel eller hur menar du?
jigganMedlem sedan juni 2003181 inlägg Ska vi se nu...Hela koden som ska spara sakerna ser ut så här:
if ($_POST['pass'] != $_POST['pass2'])
{
header("Location:index.php?section=regga&pass=fel");
}
if ($_POST['y'] == "noll")
{
header("Location:index.php?section=regga&y=fel");
}
if ($_POST['m'] == "noll")
{
header("Location:index.php?section=regga&m=fel");
}
if ($_POST['d'] == "noll")
{
header("Location:index.php?section=regga&d=fel");
}
if ($_POST['lan'] == "noll")
{
header("Location:index.php?section=regga&lan=fel");
}
else
{
$link = mysql_connect("XXXXX", "XXXXX", "XXXX");
mysql_select_db("free58819", $link);
$reg_y = date('Y');
$reg_m = date('m');
$reg_d = date('d');
$sql = "SELECT nick FROM members WHERE nick = '". $_POST['nick'] ."'";
$resultat = mysql_query($sql, $link) or die (mysql_error());
if(mysql_num_rows($resultat)==0)
{
$insert="INSERT INTO members (nick, pass, fnamn, enamn, y, m, d, lan, epost, visa_epost, reg_y, reg_m, reg_d) VALUES
('" . $_POST['nick'] ."', '" . $_POST['pass'] ."', '" . $_POST['fnamn'] ."', '" . $_POST['enamn'] ."',
'" . $_POST['y'] ."', '" . $_POST['m'] ."', '" . $_POST['d'] ."', '" . $_POST['lan'] ."',
'" . $_POST['epost'] ."', '" . $_POST['visa_epost'] . "', '" . $reg_y . "', '" . $reg_m ."', '" . $reg_d . "')";
$resultat2 = mysql_query($insert, $link) or die (mysql_error());
header("Location: index.php?section=regga®=true");
}
else
{
header("Location: index.php?section=regga&anv=fel");
}
}
Kontrollen av lösenorden fungerar alltid, ibland också någon av de andra if satserna, men ibland verkar den hoppa över dem och gå direkt dit där det sparas.
SnakesMedlem sedan okt. 2004386 inlägg Testa att skriva År, värdelöst <option>År</option>
if (empty($_POST['y']))
{
header("Location:index.php?section=regga&y=fel");
exit;
}
if (empty($_POST['m']))
{
header("Location:index.php?section=regga&m=fel");
exit;
}
if (empty($_POST['d']))
{
header("Location:index.php?section=regga&d=fel");
exit;
}
if (empty($_POST['lan']))
{
header("Location:index.php?section=regga&lan=fel");
exit;
}
jigganMedlem sedan juni 2003181 inlägg Tyvärr funkar inte det heller. Måste du lösa detta...Förstår inte hur den bara kan komma över alla satserna ibland och ibland reagerar den!
SnakesMedlem sedan okt. 2004386 inlägg 1. "Måste du lösa detta", var det en stick härifrån eller en hjälp mig?
2. En sista "Testa med detta"
if ($_POST['pass'] != $_POST['pass2'])
{
header("Location:index.php?section=regga&pass=fel");
}
elseif (empty($_POST['y']))
{
header("Location:index.php?section=regga&y=fel");
exit;
}
elseif (empty($_POST['m']))
{
header("Location:index.php?section=regga&m=fel");
exit;
}
elseif (empty($_POST['d']))
{
header("Location:index.php?section=regga&d=fel");
exit;
}
elseif (empty($_POST['lan']))
{
header("Location:index.php?section=regga&lan=fel");
exit;
}
else
{
$link = mysql_connect("XXXXX", "XXXXX", "XXXX");
mysql_select_db("free58819", $link);
$reg_y = date('Y');
$reg_m = date('m');
$reg_d = date('d');
$sql = "SELECT nick FROM members WHERE nick = '". $_POST['nick'] ."'";
$resultat = mysql_query($sql, $link) or die (mysql_error());
if(mysql_num_rows($resultat)==0)
{
$insert="INSERT INTO members (nick, pass, fnamn, enamn, y, m, d, lan, epost, visa_epost, reg_y, reg_m, reg_d) VALUES
('" . $_POST['nick'] ."', '" . $_POST['pass'] ."', '" . $_POST['fnamn'] ."', '" . $_POST['enamn'] ."',
'" . $_POST['y'] ."', '" . $_POST['m'] ."', '" . $_POST['d'] ."', '" . $_POST['lan'] ."',
'" . $_POST['epost'] ."', '" . $_POST['visa_epost'] . "', '" . $reg_y . "', '" . $reg_m ."', '" . $reg_d . "')";
$resultat2 = mysql_query($insert, $link) or die (mysql_error());
header("Location: index.php?section=regga®=true");
}
else
{
header("Location: index.php?section=regga&anv=fel");
}
}
jigganMedlem sedan juni 2003181 inlägg Jag löste det. Nu funkar det. Jag ändrade bara det jag hade från början och lade till else if efter varje sats så det såg ut så här:
if ($_POST['pass'] != $_POST['pass2'])
{
header("Location:index.php?section=regga&pass=fel");
}
else if ($_POST['y'] == "noll")
{
header("Location:index.php?section=regga&y=fel");
}
else if ($_POST['m'] == "noll")
{
header("Location:index.php?section=regga&m=fel");
}
else if ($_POST['d'] == "noll")
{
header("Location:index.php?section=regga&d=fel");
}
else if ($_POST['lan'] == "noll")
{
header("Location:index.php?section=regga&lan=fel");
}
Tack för hjälpen ändå Snakes!
SnakesMedlem sedan okt. 2004386 inlägg Inga problem.... Men i sista inlägget sa jag att du skulle lägga elseif..... glöm det...
Kan du vara snäll och markera ditt inlägg som löst?