22. april 2006 - 11:50Der er
23 kommentarer og 1 løsning
Hvordan fungerer et login system?
Hej.
Jeg kunne godt tænke mig at vide hvordan et login system skal være bygget op. Hvad man bruger til at få husket et login og hvordan man beskytter sine sider med et login.
//Får fat i de indtastede oplysninger $brugernavn = $_POST['brugernavn']; $kodeord = $_POST['kodeord'];
//Tæller hvor mange rækker hvor både kodeord og brugernavn passer $tael = mysql_query("SELECT COUNT(*) FROM brugerTabel WHERE brugernavn = '$brugernavn' AND kodeord = '$kodeord'") or die(mysql_error());
//Tjekker om der var 1 match if($antal==1){ //Sætter en session hvis det var de rigtige oplysnigner $_SESSION[login] = true;
//Sender brugeren videre til den hemmelige side header("location: secret_page.php"); exit; } else { echo "Forkert brugernavn eller kodeord!"; } }
Og så kan du tjekke om brugeren er logget ind sådan her
#secret_page.php <? session_start();
//Tjekker om sessionen er sand (om brugeren er logget ind) if($_SESSION[login] == true){ echo "Velkommen til den hemmelige side!"; } else { echo "Du skal være logget ind for at se denne side!"; } ?>
Synes godt om
Slettet bruger
22. april 2006 - 13:10#2
1: Database med kodeord og brugernavne.* 2: Login funktion der tjekker om brugernavn+kodeord passer sammen og sætter en session / cookie. 3: System der tjekker om session er sat. Som i ovenstående eksempel.
*Rent etisk vil jeg anbefale at man md5-hasher kodeordene så tredjepart (hacker der har kompromiteret databasen) eller en selv ikke har fri adgang til sine brugeres kodeord. - Kodeord bliver desværre ofte genbrugt i e-mail kontoer.
Ja det er faktisk på samme måde som cookies, dog ødelægges en session når browservinduet lukkes. og den udløber efter ca. 24 min.. Det er ikke muligt at sætte udløbstid på en session.. Du skal bare huske at have "session_start();" ALLER ØVERST i din kode :)
Okay :) Du skal have mange tak :) Når man nu laver et login, er det så mulig at inddele en side i forskellige niveauer? Så der kan være en admin del, og en bruger del??
Ja du kan f.eks have et felt i brugertabellen som du kalder for "admin" som er et varchar(5) felt. Og hvis brugeren er admin, så skal feltet stå til "ja" ellers skal der stå "nej". Så tjekker du om feltet står til "ja" og hvis det gør, så sætter du bare en ekstra session som hedder "admin". Det kan du gøre ved at tilføje lidt mere til "login.php".: ---------------------------------------------- #login.php{ session_start();
//mysql_connect osv her
//Får fat i de indtastede oplysninger $brugernavn = $_POST['brugernavn']; $kodeord = $_POST['kodeord'];
//Tæller hvor mange rækker hvor både kodeord og brugernavn passer $tael = mysql_query("SELECT * FROM brugerTabel WHERE brugernavn = '$brugernavn' AND kodeord = '$kodeord'") or die(mysql_error());
//Finder antallet $antal = mysql_num_rows($tael);
//Tjekker om der var 1 match if($antal==1){ //Vi laver et array ud fra vores variabel $tael $vis = mysql_fetch_assoc($tael);
//Sætter en session hvis det var de rigtige oplysnigner $_SESSION[login] = true;
//Sender brugeren videre til den hemmelige side header("location: secret_page.php"); exit; } else { echo "Forkert brugernavn eller kodeord!"; } } --------------------------------------------
Og så tjekker du om brugeren er administrator, sådan her:
if($_SESSION[admin] == "ja"){ echo "du er logget ind som administrator!"; }
Nu virker det, men kan man ikke få den til at inkludere en side hvis der er rigtigt login, og en anden side, hvis det er forkert, i stedet for at der kun bliver vist noget tekst?
Men du kan jo gå ind på siden "blabla.php" hvis du skriver den direkte adresse.. Kan man lave et tjek på en side så den viser noget hvis det er rigtigt login, og noget andet hvis det er forkert login...
god gide hehe :D men ville lige høre hvordan laver du en log ud til den der ?
ved godt det er et gammelt spørgsmål
Synes godt om
Ny brugerNybegynder
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.