02. januar 2001 - 23:17Der er
30 kommentarer og 1 løsning
Login-system
Hejsa, ved godt at spørgsmålet har været oppe og vende før, men jeg kan ikke se at lige netop mit har været det før, uanset hvor usandsynligt det lyder...
Jeg har brug for et login-system, hvor der skal være mulighed for multi-brugere, så når brugeren indtaster navn og password, går han til en unik side for ham selv, altså ikke hvor han blot får adgang, men de skal være til forskellige sider til forskellige brugere. Altså, bruger a indtaster navn: a og password og det checker så, og sender ham fx til side_a_ok, og hvis det er b der logger ind, så er det til side_b_ok.. I PHP (evt.) med MySQL, eller ASP, men siden hvor det skal godkendes når man går ind på siden er i PHP!!
du har f.eks en mysql tabel hvor du smider brugere ind.. ik\'??? - godt så kan du lave et ekstra felt med f.eks brugerstatus. Hvis brugerstatus er \'Normal\' så skal man sendes til side_a Og \'Lidt_mere\' så til side_b ... osv...
Vi kan starte med siden hvor oplysningerne bliver valideret:
\'login.php\'
<?php // Definer hvor du vil sende brugeren hen til hvilken status $status1 = \"Member\"; $side1 = \"side_a.php\"; $status2 = \"Junior_Member\"; $side2 = \"side_b.php\"; $status3 = \"Admin\"; $side3 = \"side_c.php\";
if ($submit) { // Hvis man kommer ind på siden ved at skrive \'login.php?submit=etellerandet\' så kan vi definere nick+kode som IKKE bliver valideret.. // Det vil føre til forkert brugernavn ... if (!$nick) { $nick = \"null_\"; } if (!$kode) { $kode = \"null_\"; }
// Inkludere filen som opretter forbindelse til databasen include(\"db.inc.php\");
$query = mysql_query(\"SELECT crypt_pass,status FROM brugere WHERE nick=\'$nick\'\") or die(mysql_error());
// Hvis ikke der kommer noget resultat, så er brugernavnet forkert. if (!mysql_num_rows($query)) { Header(\"Location: index.php?err=2\"); Exit(); } else { $kode = md5($kode); while ($row = mysql_fetch_array($query)) { $dbpass = $row[crypt_pass]; $status = $row[status]; }
if ($kode != $dbpass) { Header(\"Location: index.php?err=1\"); Exit(); }
if ($kode == $dbpass) { } SetCookie(\"login\", \"ok\", (time()+(60*60*24))); // Sætter login-cookien til én dag.. }
// Kommer man hertil så er alt ok, og vi kan sende brugeren videre. if ($status == $status1) { Header(\"Location: $side1\"); Exit(); } if ($status == $status2) { Header(\"Location: $side2\"); Exit(); } if ($status == $status3) { Header(\"Location: $side3\"); Exit(); }
} else { Echo \"Ingen adgang\"; } ?>
Og siden til at logge ind på :
\'index.php\'
<?php // Sørg for at login-cookie slettes if ($HTTP_COOKIE_VARS[\"login\"]) { SetCookie(\"login\", time(), time()-1); } ?> <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html> <head> <title>Login til brugersystem</title> </head>
<body> <div align=\"center\"><h1>Login til brugersystem</h1> <br>
<?php // Hvis der bliver indtastet noget forkert så skriv en fejlbesked if ($err==\"1\") { echo \"<font color=red size=2>Der blev indtastet forkert kodeord</font>\"; } if ($err==\"2\") { echo \"<font color=red size=2>Der blev indtastet forkert nick</font>\"; } ?> <form action=\"login.php\" method=\"post\"> <table cellpadding=\"0\" cellspacing=\"5\" border=\"0\" align=\"center\"> <tr> <td>Nick:</td> <td><input type=\"text\" name=\"nick\"></td> </tr> <tr> <td>Kode:</td> <td><input type=\"text\" name=\"kode\"></td> </tr> <tr> <td></td> <td><input type=\"submit\" name=\"submit\" value=\"Login\"></td> </tr> <tr> <td colspan=\"2\"><a href=\"nybruger.php\">Opret bruger</a></td> </tr> </table> </form>
CREATE TABLE brugere ( id int(11) NOT NULL auto_increment, navn varchar(50) NOT NULL, nick varchar(50) NOT NULL, status varchar(20) NOT NULL, password varchar(20) NOT NULL, crypt_pass varchar(40) NOT NULL, dato int(9) DEFAULT \'0\' NOT NULL, PRIMARY KEY (id) );
Æh, jeg venter stadig på det nye system, ikke fordi det haster :) Det ligge altsammen overvenover, problemet er at det ikke lige var det jeg efterlyste, så der kommer en ny/anden version...
Login script Et login-script skrevet i perl. Indeholder et script til brugeroprettelse og et script til verificering af brugernavn og password. Scriptet er skrevet af Klaus Lyngsø
Tja nerdyguy, som du nok husker virkede det jo ikke helt pga. fejlen med at det skal bruges på en freepaq server og her indlæses headers som det første af iqbaren....Men hvis du finder en løsning ville det ikke være dårligt..
Hejsa, jeg har selv løst problemet, da der desværre ikke var nogen der kunne klare den, Nerdyguy har da fortjent dem da han lavede et system som desværre ikke virkerde pga. skod Freepaq.
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.