Avatar billede sebast Nybegynder
22. august 2005 - 18:28 Der er 17 kommentarer og
1 løsning

If sætning

$query = mysql_query("select brugernavn from admins where brugernavn='$_SESSION[brugernavn]'") or die(mysql_error());
while ($foo = mysql_fetch_assoc($query)) {

if(isset($_SESSION["brugernavn"]) && $foo[brugernavn] == $_SESSION["brugernavn"]) {
echo "logget ind";
} else {
echo "!!!!";
}
}
Avatar billede sebast Nybegynder
22. august 2005 - 18:29 #1
min else virker ikke (tror det er fordi den er inde i while). hvordan kan det laves? og er der en smartere måde at gøre loginsystemet sikkert på?
Avatar billede jaw Nybegynder
22. august 2005 - 18:33 #2
Umiddelbart kan jeg ikke se, at der er noget galt i din if-sætning, men det kan gøres nemmere ved f.eks. at gøre således:

$query = mysql_query("select brugernavn from admins where brugernavn='".$_SESSION['brugernavn']."'") or die(mysql_error());
if(mysql_num_rows($query) > 0) {
  echo "Logget ind";
} else {
  echo "!!!!";
}

eller:
$query = mysql_query("select count(*) from admins where brugernavn='".$_SESSION['brugernavn']."'") or die(mysql_error());
if(mysql_result($query, 0) > 0) {
  echo "Logget ind";
} else {
  echo "!!!!";
}

Den sidste er vist mindst ressourcekrævende...
Avatar billede sebast Nybegynder
22. august 2005 - 18:37 #3
Hvad hvis jeg også vil skrive nogle felter ud?
Avatar billede jaw Nybegynder
22. august 2005 - 18:40 #4
F.eks.:

$query = mysql_query("select brugernavn from admins where brugernavn='".$_SESSION['brugernavn']."'") or die(mysql_error());
if(mysql_num_rows($query) > 0) {
  while($row = mysql_fetch_array($query) {
    echo Dit brugernavn er: ".$row['brugernavn']."<br />";
  }
} else {
  echo "!!!!";
}
Avatar billede sebast Nybegynder
22. august 2005 - 18:54 #5
Er den så sikker?
Avatar billede jaw Nybegynder
22. august 2005 - 18:56 #6
Hvad mener du om den er sikker? Den er i hvert fald ligeså sikker som den if-sætning du startede med...
Avatar billede sebast Nybegynder
22. august 2005 - 19:18 #7
Ja, det ved jeg godt.

Men er der yderligere ting der bør laves for at gøre den mere sikker?
Avatar billede jaw Nybegynder
22. august 2005 - 20:02 #8
Det skulle jo være at tage et password-check med i din forespørgsel, et brugernavn i sig selv kan nok gættes.
Avatar billede sebast Nybegynder
22. august 2005 - 20:09 #9
Jeg har jo selvfølgelig lavet et check af password i min loginform.

Burde det også være dér?
Avatar billede jaw Nybegynder
22. august 2005 - 20:10 #10
Hvordan tjekker du det i login-formen da? Du bør jo krydstjekke det med hvad der ligger i tabellen.
Avatar billede sebast Nybegynder
22. august 2005 - 20:16 #11
Jeg får jo kun lavet min session hvis brugernavn og kodeord er korrekt skrevet ind??
Avatar billede jaw Nybegynder
22. august 2005 - 20:18 #12
Nå, ja det er klart nok. Så synes jeg sådan set det er udemærket.
Avatar billede sebast Nybegynder
22. august 2005 - 20:20 #13
Smid et svar.

Hvad bruges session_id egentlig til?
Avatar billede jaw Nybegynder
22. august 2005 - 20:22 #14
Session_id kan f.eks. bruges hvis sessions skal sendes mellem sider med GET tror jeg.

Hvis du vil læse mere, så prøv www.php.net/session_id
Avatar billede Slettet bruger
22. august 2005 - 20:23 #15
Det er for at adskille forskellige sessioner fra hinanden.. Du kan f.eks. adskille besøgende på din hjemmeside vha sessionsid'et, da idét er unikt.

Sessionsid'et bliver ofte brugt til at genskabe sessionsdata fra f.eks. en database.
Avatar billede sebast Nybegynder
22. august 2005 - 20:33 #16
Men er session_id nødvendigt?
Avatar billede Slettet bruger
22. august 2005 - 20:37 #17
Overhovedet ikke..
Avatar billede Slettet bruger
22. august 2005 - 20:37 #18
- ikke for dig i hvert fald.
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