30. oktober 2006 - 15:23
Der er
5 kommentarer og 1 løsning
Muchu simpelt login i PHP med mysql
Ja, altså. Jeg har lavet et meget simpelt login (med opret) i php med mysql. Og det virker fint nok LIGE indtil man er logget ind og kommet igennem og alt det. Lige inden jeg kommer til problemet vil jeg sige at der er 3 brugere i systemet lige nu. Så til problemet, Når jeg logger ind skriver den: Du er nu logget ind med brugernavn, Hoppebold og kodeord, XXXXX. Forkert kodeord eller noget, Prøv igen ;-) Forkert kodeord eller noget, Prøv igen ;-) altså, den jeg logger ind med (Som er rigtig) og de 2 andre som jeg jo ikke er logget ind med. Og den skal KUN skrive den øverste når jeg er logget ind, og ikke andet. Koden: <?php include("db.php"); $result = mysql_query("SELECT * FROM bruger") or die("Fejl: " . mysql_error()); while ($row = mysql_fetch_assoc($result)) { $brugernavn = $row[brugernavn]; $_SESSION[brugernavn] = $brugernavn; $kodeord = $row[kodeord]; $_SESSION[kodeord] = $kodeord; if($_GET[mode] == login){ if($login){ if(($row[brugernavn] == $username) && ($row[kodeord] == $password)){ print "Du er logget rigtigt ind med brugernavn, <b>$row[brugernavn]</b> og kode, <b>$row[kodeord]</b>.<br>"; }else{ print "Forkert brugernavn eller kodeord! Prøv igen ;-)<br>"; } } } } if(!$login) { ?> <form action="?side=login_user&mode=login" method="post"> <table border="1" cellpadding="0" cellspacing="0" width="490" align="center" style="background-color:#FFFFFF"> <tr> <td>Brugernavn</td> <td><input type="hidden" name="login" value="1"><input type="text" name="username" /></td> </tr> <tr> <td>Kodeord</td> <td><input type="password" name="password" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="Login" /> <input type="reset" value="Ryd felter" /></td> </tr> </table> </form> <?php } ?> Dette syntes jeg selv er uoverskueligt :-P..
Annonceindlæg fra Kommando
30. oktober 2006 - 15:32
#1
Prøv det her i stedet for: <?php include("db.php"); if($_GET[mode] == login){ if($login){ $username = $_POST['username']; $password = $_POST['password']; $result = mysql_query("SELECT * FROM bruger WHERE brugernavn = '$username' AND kodeord = $password" LIMIT 1) or die("Fejl: " . mysql_error()); if(mysql_num_rows>=1) { while ($row = mysql_fetch_assoc($result)) { $_SESSION[brugernavn] = $row[brugernavn]; $_SESSION[kodeord] = $row[kodeord]; print "Du er logget rigtigt ind med brugernavn, <b>$row[brugernavn]</b> og kode, <b>$row[kodeord]</b>.<br>"; } } else { print "Forkert brugernavn eller kodeord! Prøv igen ;-)<br>"; } } } if(!$login) { ?> <form action="?side=login_user&mode=login" method="post"> <table border="1" cellpadding="0" cellspacing="0" width="490" align="center" style="background-color:#FFFFFF"> <tr> <td>Brugernavn</td> <td><input type="hidden" name="login" value="1"><input type="text" name="username" /></td> </tr> <tr> <td>Kodeord</td> <td><input type="password" name="password" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="Login" /> <input type="reset" value="Ryd felter" /></td> </tr> </table> </form> <?php } ?>
30. oktober 2006 - 15:38
#2
Jeg rettede lige lidt på den: $result = mysql_query("SELECT * FROM bruger WHERE brugernavn = '$username' AND kodeord = $password" LIMIT 1) or die("Fejl: " . mysql_error()); Til: $result = mysql_query("SELECT * FROM bruger WHERE brugernavn = '$username' AND kodeord = '$password' LIMIT 1") or die("Fejl: " . mysql_error()); For ellers udskrev den en fejl.. Men nu kan jeg slet ikke logge ind, nu skriver den bare forkert kodeord eller noget :/
30. oktober 2006 - 15:39
#3
arh det er også mig der har glemt noget. den her skal ændres: if(mysql_num_rows>=1) { til det her: if(mysql_num_rows($result)>=1) {
30. oktober 2006 - 15:43
#4
Nu virker det jo helt perfekt :-D Smid lige et svar
30. oktober 2006 - 15:51
#5
ok, et svar er her med smidt.
30. oktober 2006 - 15:52
#6
OG hermed accepteret :-P
Vi tilbyder markedets bedste kurser inden for webudvikling