php-resource.de

PHP Tutorial: Wie erstelle ich ein LogIn-Skript?

Das folgende Tutorial nutzt eine Datenbank, in der die Benutzerdaten gespeichert werden und eine Session, in der der Benutzer registriert wird.

|14.03.2003 | andy@ | 52795 | KAT : PHP | | Kommentare 7


8

9

Zeilen 01 - 08

Wir starten wieder wie gewohnt unsere Session und generieren unsere Abfrage, ob die Sessionvariable user nicht leer ist. Dies wurde weiter oben in der Datei sichere_seite.php ja schon erklärt. Ebenso binden wir unsere Verbindungsdatei connect.inc.php wieder mit require() ein.

Zeilen 09 - 47

Dieser Teil des Quelltextes wurde ebenfalls bereits bei der Datei index.php erklärt. Die einzigen zwei Unterschiede bestehen darin, dass wir dieses mal ein zweites Feld für die Passwortwiederholung haben und einen Link zurück auf die index.php generieren. Es ist darauf zu achten, dass das name-Attribut der beiden Passwortfelder nicht gleich sein darf. In meinem Fall heißen sie password und password2.

Zeile 49 und 50

So langsam aber sicher geht es ans Eingemachte ;-) Wir generieren eine Abfrage, }elseif(!isset($_POST['username']) || $_POST['username'] == ""){ die auf Deutsch soviel heißt wie: Wenn die Variable username nicht gesetzt ist, oder die Variable username leer ist, dann führe den Code in den geschweiften Klammern aus. Wurde also kein Benutzername im Formular eingegeben, geben wir per echo-Befehl eine Meldung und einen Link zurück zur neu.php aus.

Zeile 51 und 52

In diesen beiden Zeilen passiert das Gleiche wie schon beim Benutzernamen. Es wird geprüft, ob das erste Passwort eingegeben wurde. Wenn nicht, erfolgt wieder einmal eine Meldung und ein Link zurück zur neu.php wird wieder generiert.

Zeile 53 - 58

Sind die Daten (Benutzername und das erste Passwort) eingegeben worden, so prüfen wir in Zeile 53 nach, ob das erste Passwort nicht mit dem zweiten Passwort übereinstimmt. Ist dies der Fall (verschiedene Eingaben), so wird wieder einmal eine Fehlermeldung ausgegeben und wir generieren uns mal wieder ein kleines Formular mit einem hidden-Feld, das als Wert den geposteten Benutzernamen enthält. Ein Button mit der Aufschrift Zurück rundet die Sache ab und wir landen wieder bei der Eingabemaske. Dieses mal aber mit bereits vorbelegtem Benutzernamen.

Zeile 59 - 64

Nach bestandener Prüfung aller vorhergehenden Prüfungen (Benutzernamen eingegeben, Passwörter sind identisch) gelangen wir in den else-Zweig der wiederum ein paar Abfragen bereit hält. In Zeile 60 wird eine Abfrage an die Datenbank gesendet, die einen Benutzer auswählen soll, der den gleichen Benutzernamen hat, wie der, der über das Formular gesendet wurde.

In Zeile 61 erzeugen wir eine Variable namens $result, die das Ergebnis dieser Abfrage als Wert bekommen soll.
In der Abfrage in Zeile 62 vergleichen wir ob der Benutzername aus dem Formular gleich dem Benutzernamen aus der Datenbankabfrage ist. if($_POST['username'] == $result['user']) {.
Ist dies der Fall, wird - wie sollte es anders sein - eine Fehlermeldung ausgegeben, in der wir darauf hinweisen, dass ein Benutzer mit diesem Namen bereits existiert. Ebenso wird ein Link zurück auf die neu.php generiert und wir brechen das Skript mit die ab.

Zeile 65 - 67

Existiert noch kein Benutzer mit dem über das Formular eingegebenen Benutzernamen, so gelangen wir abermals in einen else-Zweig in dem wir als erstes eine Variable namens $username erzeugen und dieser als Wert den im Formular angegebenen Benutzernamen zuweisen. Als nächstes erzeugen wir nochmal eine Variable namens $pass, der wir als Wert den md5-Hash des geposteten Passwortes mit Hilfe der Funktion md5() zuweisen.

Zeile 68 und 69

Wieder einmal erfolgt ein if-Abfrage. Wir erzeugen die Variable $insert die als Wert die Rückgabe aus der folgenden Datenbankabfrage erhält. In diesem Fall true oder false. if($insert = @mysql_query("INSERT INTO USERS SET(user = '$username', pass = '$pass')")) { Mit INSERT INTO users sagen wir dem Datenbankserver, dass wir einen Datensatz in die Tabelle users eintragen wollen. Mit VALUES('','$username','$pass') legen wir die Werte der Reihe nach fest wie sie in der Tabelle stehen. Den ersten Wert können wir leer lassen, da unsere id ein auto-increment-wert ist und dadurch automatisch hochgezählt wird. Gibt uns nun die Funktion @mysql_query ein positives Ergebnis zurück (true), so geben wir eine Erfolgsmeldung aus und generieren einen Link zurück auf die sichere Seite.

Zeile 70 und 71

Wurde von der Funktion @mysql_query ein negatives Ergebnis (false) zurückgegeben, gelangen wir in den nächsten else-Zweig, in dem wir auf einen Fehler beim Eintragen in die Datenbank hinweisen und generieren einen Link zurück auf die neu.php.

Zeile 72 - 74

Natürlich dürfen wir nicht vergessen, unsere ganzen else-Zweige mit schlißenden geschweiften Klammern zu schließen.

Ich hoffe, diese Tortur an if-Abfragen und if-Abfragen innerhalb von else-Zweigen habe ich einigermaßen verständlich rübergebracht und es treten keine - oder zumindest wenige - Probleme damit auf. Unsere Datei neu.php wäre hiermit abgeschlossen.

Was uns jetzt noch fehlt, ist unsere CSS-Datei, die das Aussehen der PHP-Seiten steuert. Es wird jetzt genügend Leute geben, die schreien "das würde ich doch als erstes machen!", aber ich halte mich anfangs nicht so sehr mit Design-Dingen auf. Denn ich habe es entweder schon auf Papier oder im Kopf, wie die Seiten auzusehen haben ;-) Und außerdem geht es in dem Tutorial ja hauptsächlich um PHP und MySQL.

Navigation -> Seitenanzahl : (9)

  «  1 2 3 4 5 6 7 8 9  » 
Kommentare zum Tutorial
Tutorial kommentieren
 
02.01.2010 20:03:50 Ein Gutes, Neues Jahr 2010 wünsche ich erst einmal allen :-) @ jimbob-walton: Dann mach was... ...
11.12.2009 16:52:27 @Andreas: In PHP bin ich (noch) nicht so fit, könnte aber meine Unterstützung anbieten was ...
11.12.2009 15:35:52 wir würden uns freuen :) ...
10.12.2009 00:13:50 Hi Ihrs ;) Es freut mich einerseits, dass dieses Tutorial immer noch so beliebt ist und auch imm ...
09.12.2009 23:09:48 Seite 3 ist ein Fehler im Quellcode, deshalb kann ein Einloggen nicht funktionieren (der md5-Hash wi ...

Alle Kommentare anzeigen ...
 
Über den Autor
andy@

andy@

Status
Premium Mitglied

Beruf
Unbekannt

Mitglied seit:
30.04.2009

letzte Aktivität
04.06.2009

 

Tutorial bewerten

Hat Ihnen dieses Tutorial gefallen? Dann bewerten Sie es jetzt! Fünf Sterne bedeutet "Sehr gut", ein Stern "Unzureichend".



 

aktuelle Artikel

Die RIGID-FLEX-Technologie

Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Neu | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Neu | Berni