Suche auf lima-city
-
in: Wie kann man das machen???
geschrieben von php-helper
Also ich hab\' schon viele Login\'s geschrieben, und mit PHP ist die bewährteste Variante die, mit den Sessions...
Schon richtig, das Login-Skript wertet erst einmal die eingegebenen Daten aus...
Ich demonstriere mal an einem kleinen Beispiel (mit Logout):
Verwendete Dateien:
login.html
check.php
intern.php
logout.php
Skript\'s:
login.html
In dieser Datei ist der User aufgefordert, die Login-Daten anzugeben...
<!DOCTYPE HTML PUBLIC \'-//W3C//DTD HTML 4.01 Transitional//EN\'> <html> <head> <title> Login </title> </head> <body> <h2> Login: </h2> <br> <br> <form name=\'f-login\' method=\'POST\' action=\'check.php\'> <b> Username: </b> <br> <input type=\'text\' name=\'user\'> <br> <b> Passwort: </b> <br> <input type=\'password\' name=\'pass\'> <br> <input type=\'submit\' name=\'submit\' value=\'Login!\'> </form> </body> </html>
check.php
Hier werden die von User angegebenen Userdaten geprüft...
Hast du das \'the_users\'-System verstanden?
Stattdessen könnte man auch die User aus einer Datenbank holen.
Hast du das System verstanden, wie der Username kontrolliert wird, ob es ihn schon gibt?
Ich hoffe doch, denn das ist schon leicht zu verstehen...
Das gleiche mit dem Passwort.
<?php $the_users = array(); //Das User-Array wird erstellt # $the_users[\'username\'] = \'passwort\'; $the_users[\'admin\'] = \'adminpw\'; //Usernamen... $the_users[\'user1\'] = \'11111\'; //...und... $the_users[\'user2\'] = \'abcd-ef\'; //...Passwörter... $the_users[\'user3\'] = \'xyz321\'; //...werden zugeteilt! # Eingegebene Userdaten werden übergeben $user = htmlspecialchars(@$_POST[\'user\']); $pass = htmlspecialchars(@$_POST[\'pass\']); # Prüfungen if ($user != \'\' and $pass != \'\') { //Wurden die Daten angegeben? if (isset($the_users[$user])) { //Existiert der Username? if ($the_users[$user] == $pass) { //Stimmt das Passwort? session_start(); //Session wird gestartet... # Userdaten in die Session übergeben $_SESSION[\'user\'] = $user; $_SESSION[\'user\'] = $pass; # Der Auth-Parameter wird später noch gebraucht $_SESSION[\'auth\'] = true; # In den Internen-Bereich katapultieren header(\'Location: intern.php\'); } else { echo \'Fehler!\'; } } else { echo \'Fehler!\'; } } else { echo \'Fehler!\'; } ?>
intern.php
Hier wird zuerst geprüft, ob man eingeloggt ist (dafür ist der Auth-Parameter (siehe check.php)).
Dann erst wird die Seite, oder ein Fehler angezeigt...
<?php session_start(); //Session starten # Prüfen: eingeloggt? if ($_SESSION[\'auth\'] == true) { # Ja, eingeloggt! echo \'Hallo und herzlich willkommen im internen Bereich...<br><br><a href=\\\'logout.php\\\'>Logout</a>\'; } else { echo \'Fehler!\'; } ?>
logout.php
Hier wird einfach nur die Session beendet und es wird auf die Login-Seite zurückgrführt...
<?php session_start(); @$_SESSION[\'auth\'] = false; @$_SESSION[\'user\'] = NULL; @$_SESSION[\'pass\'] = NULL; session_destroy(); header(\'Location: login.html\'); ?>
Hoffe, das war verständlich...
Das selbe Beispiel gibt\'s auf meiner Lima-HP...
Der Link dazu: http://php-helper.lima-city.de/beispiele/login_1
Es wurde dort der selbe Code verwendet, also sollten Usernamen und Passwörter klar sein...
Ich kann nur hoffen, ich konnte helfen!
Bei unverständlichkeiten: w/me
Oder E-Mail: tom@55zwei.de