Hallo, in diesem Tutorial wird gezeigt, wie man mit PHP ein kleines & aber dennoch schon sicheres Loginscript mit Sessions & Dateien schreibt. Viel Spaß!
Zuerst einmal benötigen wir eine Seite wo wir uns "eintragen" können. Diese Datei nennen wir einfach mal eintragen.html:
Dann kommt die .php Datei mit der die Abspeicherung der Daten in einer user.txt getan wird. Diese Datei nennen wir einfach mal eintragen.php:
Alles anzeigen
Dann benötigen wir noch eine Art "Login-Page", diese nennen wir login.html:
Auch dazu benötigen wir wieder eine .php Datei um die Daten abzufragen, diese nennen wir login.php:
Alles anzeigen
Anstatt nur Hallo $username registieren wir hier die Session username. Außerdem bekommt geben wir noch einen Link zum geschützen Bereich (geheim.php) aus.
Und so sieht der geschütze Bereich (geheim.php) aus:
Alles anzeigen
Alle geschützen Dateien müssen so aussehen, wie die ersten paar Zeilen von geheim.php.
Falls ihr noch nicht die Version 4.1.0 benutzt, und somit der Script nicht funktioniert müsst ihr anstatt $_POST => $HTTP_POST_VARS schreiben und anstatt $_SESSION => $HTTP_SESSION_VARS
Screenshots:
[Blockierte Grafik: http://s14.directupload.net/images/111212/qjvjlzto.png] [Blockierte Grafik: http://screeny.secure-dev.de/rhQhktUp0HjOxx0M7.png] [Blockierte Grafik: http://screeny.secure-dev.de/jQRKaFna5UBa4keBJ.png] [Blockierte Grafik: http://screeny.secure-dev.de/247rvxR2dAo2ZzXT8.png]
Zuerst einmal benötigen wir eine Seite wo wir uns "eintragen" können. Diese Datei nennen wir einfach mal eintragen.html:
Quellcode
- <form action="eintragen.php" method="post"> Dein Username:<br> <input type="text" size="24" maxlength="50" name="username"><br><br> Dein Passwort:<br> <input type="password" size="24" maxlength="50" name="passwort"><br> Passwort wiederholen:<br> <input type="password" size="24" maxlength="50" name="passwort2"><br> <input type="submit" value="Abschicken"> </form>
Dann kommt die .php Datei mit der die Abspeicherung der Daten in einer user.txt getan wird. Diese Datei nennen wir einfach mal eintragen.php:
PHP-Quellcode
- <?php
- $username = $_POST["username"];
- $password = $_POST["passwort"];
- $password2 = $_POST["passwort2"];
- if ($password == $password2)
- {
- $user_vorhanden = array();
- $passwort = md5($password);
- $userdatei = fopen ("user.txt","r");
- while (!feof($userdatei))
- {
- $zeile = fgets($userdatei,500);
- $userdata = explode("|", $zeile);
- array_push ($user_vorhanden,$userdata[0]);
- }
- fclose($userdatei);
- if (in_array($username,$user_vorhanden))
- {
- echo "Username schon vorhanden <br> <a href=\"eintragen.html\">zurück</a>";
- }
- else
- {
- $userdatei = fopen ("user.txt","a");
- fwrite($userdatei, $username);
- fwrite($userdatei, "|");
- fwrite($userdatei, $passwort);
- fwrite($userdatei, "\n");
- fclose($userdatei);
- echo "$username, deine Anmeldung war erfolgreich<br><a href=\"login.html\">zum Login</a>";
- }
- }
- else
- {
- echo "Die Passwörter sind nicht identisch<br> <a href=\"eintragen.html\">zurück</a> ";
- }
- ?>
Dann benötigen wir noch eine Art "Login-Page", diese nennen wir login.html:
Auch dazu benötigen wir wieder eine .php Datei um die Daten abzufragen, diese nennen wir login.php:
PHP-Quellcode
- <?php
- $username = $_POST["username"];
- $passwort = $_POST["password"];
- $passwort = md5($passwort);
- $log=0;
- $userdatei = fopen ("user.txt","r");
- while (!feof($userdatei))
- {
- $zeile = fgets($userdatei,500);
- $userdata = explode("|", $zeile);
- if ($userdata[0]==$username and $passwort==trim($userdata[1]))
- {
- $_SESSION['username'] = $username;
- echo "Login war erfolgreich. <a href=\"geheim.php\">Geschützer Bereich</a>";
- $log = 1;
- }
- }
- fclose($userdatei);
- if ($log==0)
- {
- echo "Zugriff verweigert <a href=\"login.html\">Zurück</a>";
- }
- ?>
Anstatt nur Hallo $username registieren wir hier die Session username. Außerdem bekommt geben wir noch einen Link zum geschützen Bereich (geheim.php) aus.
Und so sieht der geschütze Bereich (geheim.php) aus:
PHP-Quellcode
Alle geschützen Dateien müssen so aussehen, wie die ersten paar Zeilen von geheim.php.
Falls ihr noch nicht die Version 4.1.0 benutzt, und somit der Script nicht funktioniert müsst ihr anstatt $_POST => $HTTP_POST_VARS schreiben und anstatt $_SESSION => $HTTP_SESSION_VARS
Screenshots:
[Blockierte Grafik: http://s14.directupload.net/images/111212/qjvjlzto.png] [Blockierte Grafik: http://screeny.secure-dev.de/rhQhktUp0HjOxx0M7.png] [Blockierte Grafik: http://screeny.secure-dev.de/jQRKaFna5UBa4keBJ.png] [Blockierte Grafik: http://screeny.secure-dev.de/247rvxR2dAo2ZzXT8.png]
Ich hoffe euch hat das Tutorial ein wenig geholfen, mit freundlichen Grüßen
Numex
Numex
/edit: Fehler korrigiert
/edit2: PHP-Tag bei login.php vergessen
/edit3: Screenshots beigefügt
Quelle: php-einfach.de
/edit2: PHP-Tag bei login.php vergessen
/edit3: Screenshots beigefügt
Quelle: php-einfach.de
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Numex ()