Avatar billede supersquirrel Nybegynder
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..
Avatar billede sw_red_6 Nybegynder
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
}
?>
Avatar billede supersquirrel Nybegynder
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 :/
Avatar billede sw_red_6 Nybegynder
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) {
Avatar billede supersquirrel Nybegynder
30. oktober 2006 - 15:43 #4
Nu virker det jo helt perfekt :-D

Smid lige et svar
Avatar billede sw_red_6 Nybegynder
30. oktober 2006 - 15:51 #5
ok, et svar er her med smidt.
Avatar billede supersquirrel Nybegynder
30. oktober 2006 - 15:52 #6
OG hermed accepteret :-P
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester