Warning: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php on line 58 Login mit Hilfe von PHP und mySQL PHP Tutorials nicht nur für Anfänger php-resource.de
Nachdem wir jetzt ein fast bildhübsches Formular haben, fehlt uns nur noch
die serverseitige Logik, mit Hilfe derer wir die eingegebenen Daten verifizieren
und angemessen reagieren.
Daher laden wir die Datei login.php und erweitern sie wie
folgt:
Wie gehabt, kommt erst der Code und danach die Erklärung:
<?php
session_start();
include 'sessionhelpers.inc.php';
if (isset($_POST['login']))
{
$userid=check_user($_POST['username'], $_POST['userpass']);
if ($userid!=false)
login($userid);
else
echo 'Ihre Anmeldedaten waren nicht korrekt!';
}
if (!logged_in())
echo '<form method="post" action="login.php">
<label>Benutzername:</label><input name="username" type="text"><br>
<label>Passwort: </label><input name="userpass" type="password" id="userpass"><br>
<input name="login" type="submit" id="login" value="Einloggen">
</form>';
else
echo '<a href="logout.php">Ausloggen</a>';
echo '<p /><a href="logged_in.php">Check</a>';
?>
Die erste Zeile startet die Session. Dieser Befehl muss auf allen Seiten
stehen, und zwar überall als erster Befehl, da es sonst unter Umständen zu
unschönen Fehlermeldungen kommt.
Die zweite Zeile bindet die Datei sessionhelpers.inc.php ein, in der
ein paar Funktionen zum Ein- und Ausloggen stehen.
Die dritte Zeile prüft, ob unser Formular abgeschickt wurde.
Ist das der Fall wird mit der Funktion check_user die UserID des
Benutzers erfragt, zu dem die eingegebenen Daten passen.
Es gibt hier zwei Möglichkeiten:
Es wird eine UserID zurückgeliefert.
Daraus folgt, dass die Anmeldedaten korrekt waren und der Benutzer wird mit
der Funktion login eingeloggt.
Es wird false zurückgeliefert.
Daraus folgt, dass die Anmeldedaten nicht korrekt waren und es wird eine
entsprechende Meldung ausgegeben.
Die folgenden Schritte werden immer durchgeführt, also auch dann, wenn der
Benutzer kein Formular abgeschickt hat:
Es wird geprüft, ob der Benutzer eingeloggt ist.
Ist dies der Fall wird ein Link ausgegeben, der ihm das Ausloggen ermöglicht,
anderenfalls wird das Login-Formular angezeigt.