02. marts 2003 - 19:18
Der er
16 kommentarer og 1 løsning
Redirecte
Jeg ved der er en masse spørgsmål angående dette emne, men jeg fatter det simpelthen ikke. Kan jeg ikke få lov til at redirecte hvis min if-sætning er sand? <? if ($mode == "login") { mysql_connect("localhost", "donslund", "veterankasse"); mysql_select_db("veteranbil"); $Hent = mysql_query("Select * from medlemmer where brugernavn='$brugernavn' and password='$password'"); $fundt = mysql_num_rows($Hent); if ($brugernavn == $fundt && $password == $fundt) { print "Forkert brugernavnpassword"; } else { print "Fundet :)"; ---> header("Location: showpage.php"); } } else { print "Hello World"; print "<form method=\"post\" action=\"login.php?mode=login\">"; print "<input type=\"text\" name=\"brugernavn\"><br>"; print "<input type=\"password\" name=\"password\"><br>"; print "<input type=\"submit\">"; print "</form>"; } ?>
Annonceindlæg fra Geoinfo
02. marts 2003 - 19:21
#1
Jo du kan, men jeg gætter på at du får en fejlmeddelese i stil med
02. marts 2003 - 19:23
#2
Warning: Cannot modify header information - headers already sent by (output started at /www/vorbasse.dk/subdomains/veteranbiler/medlem/login.php:10) in /www/vorbasse.dk/subdomains/veteranbiler/medlem/login.php on line 11
02. marts 2003 - 19:23
#3
grrr....prøver igen :-) i stil med: Header already sent. Du må ikke lave html eller print inden du laver redirect.
02. marts 2003 - 19:24
#4
Hvordan vender jeg så dette om? if ($brugernavn == $fundt && $password == $fundt) { print "Forkert brugernavnpassword"; } else { print "Fundet :)"; header("Location: showpage.php"); }
02. marts 2003 - 19:27
#5
Vise evt. fejl i den side du er i, eller sende fejlmeddelelser med over til den næste side som fx. en session variabel.
02. marts 2003 - 19:28
#6
det fattede jeg ikke
02. marts 2003 - 19:30
#7
Drop linien med print "Fundet :)"; Den ser man jo alligevel ikke
Slettet bruger
02. marts 2003 - 19:31
#8
if ($brugernavn == $fundt && $password == $fundt) { print "Forkert brugernavnpassword"; } else { header("Location: showpage.php"); }
02. marts 2003 - 19:31
#9
kort : du kan ikke både printe noget og samtidig sende headers (eg. redirect'e) derfor skal du ENTEN bruge print() ELLER bruge header(). fjern denne linie : print "Fundet :)";
02. marts 2003 - 19:32
#10
Den er allerede væk.
02. marts 2003 - 19:32
#11
Koden ser nu således ud: <? if ($mode == "login") { mysql_connect("localhost", "donslund", "veterankasse"); mysql_select_db("veteranbil"); $Hent = mysql_query("Select * from medlemmer where brugernavn='$brugernavn' and password='$password'"); $fundt = mysql_num_rows($Hent); if ($brugernavn != $fundt or $password != $fundt) { header("Location: showpage.php"); } else { print "Forkert brugernavnpassword"; } } else { print "Hello World"; print "<form method=\"post\" action=\"login.php?mode=login\">"; print "<input type=\"text\" name=\"brugernavn\"><br>"; print "<input type=\"password\" name=\"password\"><br>"; print "<input type=\"submit\">"; print "</form>"; } ?>
02. marts 2003 - 19:32
#12
Så skal du rette din if til som jeg sagde i dit andet spørgsmål
02. marts 2003 - 19:33
#13
Du kunne fx. gøre flg: $msg = ''; if ($brugernavn == $fundt && $password == $fundt) { $msg = 'Forkert bruger/password'; else { header('location: showpage.php'); return; } bla bla lige før body: <? if (strlen($msg) > 0) { ?> <script language='javacsript'> alert('<?= $msg ?>'); </script> <? } ?>
Slettet bruger
02. marts 2003 - 19:34
#14
Prøv med: $fundt = mysql_num_rows($Hent); if ($fundt==1) {//Send videre til næste side! } else { //Fejl!
02. marts 2003 - 20:10
#15
Nu ser koden således ud: <? if ($mode == "login") { mysql_connect("localhost", "donslund", "veterankasse"); mysql_select_db("veteranbil"); $Hent = mysql_query("Select * from medlemmer where brugernavn='$brugernavn' and password='$password'"); $fundt = mysql_num_rows($Hent); $msg = ''; if ($brugernavn == $fundt && $password == $fundt) { $msg = 'Forkert bruger/password'; } else { header('location: showpage.php'); return; } } else { print "<form method=\"post\" action=\"index.php?mode=login\">"; print "<input type=\"text\" name=\"brugernavn\"><br>"; print "<input type=\"password\" name=\"password\"><br>"; print "<input type=\"submit\">"; print "</form>"; } ?> Men den lukker hvad som helst igennem blot enten brugernavn eller password er korrekt. Skal denne linie: if ($brugernavn == $fundt && $password == $fundt) { ikke hedde noget lignende if ($brugernavn != $fundt or $password != $fundt) {
02. marts 2003 - 20:11
#16
Prøv at høre hvad jeg og regin siger
02. marts 2003 - 20:16
#17
Okay okay - regin, du vandt. Tak for tålmodigheden alle sammen
Vi tilbyder markedets bedste kurser inden for webudvikling