PHP Loginsystem - Passwort-vergessen-Funktion
Autor
Flitze
Klicks 349556
Keywords:
MySQL PHP Login System, Passwort-vergessen-Funktion, Loginsystem, einloggen, Passwort zusenden
Klicks 349556
Rating für PHP Loginsystem
8.8 von 10
Bewertungen286
Stand
12.06.2013
8.8 von 10
Bewertungen286
Keywords:
MySQL PHP Login System, Passwort-vergessen-Funktion, Loginsystem, einloggen, Passwort zusenden
Breadcrumb:
Workshops » PHP Loginsystem » PHP Loginsystem - Passwort-vergessen-Funktion
3. Loginsystem und Passwort-vergessen-Funktion
[ADSENSE_LINE]Nachdem sich nun Benutzer registrieren können, macht es Sinn, dass sich diese auch einloggen können, damit wir sie als registrierte User identifizieren können.
Dazu müssen wir einen Bereich schaffen, in dem sich die User einloggen können. Wir erstellen also erneut ein Formular. Dieses könnte zum Beispiel so aussehen:
(Zur vergrößerten Darstellung bitte auf die Grafik klicken)
Die Grundstruktur der Logindatei sieht ähnlich aus wie die der Registrierung:
PHP:
<?php // Prüfen, ob das Formular gesendet wurde
if(Formular gesendet){
// Kontrolle der eingegebenen Daten
// Einloggen des Users
}
// Ansonsten ...
else {
// ... Anzeige des Formulars
}
?>
Das Formular dazu ist folgendermaßen aufgebaut
PHP:
<?php
echo "<form ".
" name=\"Login\" ".
" action=\"".$_SERVER['PHP_SELF']."\" ".
" method=\"post\" ".
" accept-charset=\"ISO-8859-1\">\n";
echo "Nickname :\n";
echo "<input type=\"text\" name=\"Nickname\" maxlength=\"32\">\n";
echo "<br>\n";
echo "Passwort :\n";
echo "<input type=\"password\" name=\"Passwort\">\n";
echo "<br>\n";
echo "eingeloggt bleiben :\n";
echo "<input type=\"checkbox\" name=\"Autologin\" value=\"1\">\n";
echo "<br>\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Einloggen\">\n";
echo "<br>\n";
echo "<a href=\"passwort.php\">Passwort vergessen</a> oder noch nicht <a href=\"registrierung.php\">registriert</a>?\n";
echo "</form>\n";
}
?>
Die Passwort-vergessen-Funktion werde ich später noch behandeln. Nach dem Abschicken des Formulars werden der Nickname und das Passwort mit den Daten in der Datenbank verglichen. Dazu muss wieder eine Datenbankverbindung hergestellt werden. Wird dann ein Datensatz gefunden, der mit dem Nickname und dem Passwort übereinstimmt, wird ein Login durchgeführt.
PHP:
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'root';
$MYSQL_PASS = 'myPassWord';
$MYSQL_DATA = 'myDataBase';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
// Session starten
session_start();
if(isset($_POST['submit']) AND $_POST['submit']=='Einloggen'){
// Falls der Nickname und das Passwort übereinstimmen..
$sql = "SELECT
ID
FROM
User
WHERE
Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."' AND
Passwort = '".md5(trim($_POST['Passwort']))."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// wird die ID des Users geholt und der User damit eingeloggt
$row = mysql_fetch_assoc($result);
// Prüft, ob wirklich genau ein Datensatz gefunden wurde
if (mysql_num_rows($result)==1){
doLogin($row['ID'], isset($_POST['Autologin']));
echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";
echo "Sie wurden erfolgreich eingeloggt.<br>\n".
"Zur <a href=\"index.php\">Startseite</a>\n";
}
else{
echo "Sie konnten nicht eingeloggt werden.<br>\n".
"Nickname oder Passwort fehlerhaft.<br>\n".
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Login-Formular</a>\n";
}
}
else{
echo "<form ".
" name=\"Login\" ".
" action=\"".$_SERVER['PHP_SELF']."\" ".
" method=\"post\" ".
" accept-charset=\"ISO-8859-1\">\n";
echo "Nickname :\n";
echo "<input type=\"text\" name=\"Nickname\" maxlength=\"32\">\n";
echo "<br>\n";
echo "Passwort :\n";
echo "<input type=\"password\" name=\"Passwort\">\n";
echo "<br>\n";
echo "eingeloggt bleiben :\n";
echo "<input type=\"checkbox\" name=\"Autologin\" value=\"1\">\n";
echo "<br>\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Einloggen\">\n";
echo "<br>\n";
echo "<a href=\"passwort.php\">Passwort vergessen</a> oder noch nicht <a href=\"registrierung.php\">registriert</a>?\n";
echo "</form>\n";
}
?>
Wie bei allen Daten, durch die der User auf die Datenbank zugreifen kann, muss ich auch hier mysql_real_escape_string() benutzen. Bei erfolgreicher Abfrage wird nun noch einmal mit mysql_num_rows() geprüft, ob genau ein Datensatz gefunden wurde was aber eigentlich dadurch gewährleistet ist, dass wir der Nickname-Spalte der Datenbanktabelle den Key UNIQUE gegeben haben.
Wie man an $_SESSION['Nickname'] erkennen kann, benutze ich Sessions. Dadurch kann ich jederzeit auf die Daten des Users zugreifen. Zum Tatsächlichen Einloggen wird die Funktion doLogin() aufgerufen, die die aktuelle SessionID (und noch ein paar andere Dinge) in der Datenbank speichert und die User ID und den Nickname in der Sessions speichert.
PHP:
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'root';
$MYSQL_PASS = 'myPassWord';
$MYSQL_DATA = 'myDataBase';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
// Session starten
session_start();
// Loggt einen User ein, ..
function doLogin($ID, $Autologin=false)
{
// .. indem die aktuelle Session ID in der Datenbank gespeichert wird
$sql = "UPDATE
User
SET
SessionID = '".mysql_real_escape_string(session_id())."',
Autologin = NULL,
IP = '".$_SERVER['REMOTE_ADDR']."',
Letzte_Aktion = '".mysql_real_escape_string(time())."',
Letzter_Login = '".mysql_real_escape_string(time())."'
WHERE
ID = '".$ID."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// Wenn 'eingeloggt bleiben' aktiviert wurde
if($Autologin){
// Zufallscode erzeugen
$part_one = substr(time()-rand(100, 100000),5,10);
$part_two = substr(time()-rand(100, 100000),-5);
$Login_ID = md5($part_one.$part_two);
// Code im Cookie speichern, 10 Jahre dürfte genügen
setcookie("Autologin", $Login_ID, time()+60*60*24*365*10);
$sql = "UPDATE
User
SET
Autologin = '".$Login_ID."'
WHERE
ID = '".$ID."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
}
// Daten des Users in der Session speichern
$sql = "SELECT
Nickname
FROM
User
WHERE
ID = '".$ID."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
$_SESSION['UserID'] = $ID;
$_SESSION['Nickname'] = $row['Nickname'];
}
if(isset($_POST['submit']) AND $_POST['submit']=='Einloggen'){
// Falls der Nickname und das Passwort übereinstimmen..
$sql = "SELECT
ID
FROM
User
WHERE
Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."' AND
Passwort = '".md5(trim($_POST['Passwort']))."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// wird die ID des Users geholt und der User damit eingeloggt
$row = mysql_fetch_assoc($result);
// Prüft, ob wirklich genau ein Datensatz gefunden wurde
if (mysql_num_rows($result)==1){
doLogin($row['ID'], isset($_POST['Autologin']));
echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";
echo "Sie wurden erfolgreich eingeloggt.<br>\n".
"Zur <a href=\"index.php\">Startseite</a>\n";
}
else{
echo "Sie konnten nicht eingeloggt werden.<br>\n".
"Nickname oder Passwort fehlerhaft.<br>\n".
"Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Login-Formular</a>\n";
}
}
else{
echo "<form ".
" name=\"Login\" ".
" action=\"".$_SERVER['PHP_SELF']."\" ".
" method=\"post\" ".
" accept-charset=\"ISO-8859-1\">\n";
echo "Nickname :\n";
echo "<input type=\"text\" name=\"Nickname\" maxlength=\"32\">\n";
echo "<br>\n";
echo "Passwort :\n";
echo "<input type=\"password\" name=\"Passwort\">\n";
echo "<br>\n";
echo "eingeloggt bleiben :\n";
echo "<input type=\"checkbox\" name=\"Autologin\" value=\"1\">\n";
echo "<br>\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Einloggen\">\n";
echo "<br>\n";
echo "<a href=\"passwort.php\">Passwort vergessen</a> oder noch nicht <a href=\"registrierung.php\">registriert</a>?\n";
echo "</form>\n";
}
?>
Die Funktion doLogin() erwartet 2 Parameter, die ID eines Users und eine Information, ob ein automatischer Login aktiviert werden soll oder nicht.
Durch die übergebene ID wird der User identifiziert und die aktuelle Session ID wird gespeichert. Außerdem wird der Letzte_Login Timestamp und der Letzte_Aktion Timestamp aktualisiert sowie die IP des Users gespeichert. Wurde 'eingeloggt bleiben' aktiviert, wird zudem noch eine Zufalls Login ID erzeugt und in Autologin gespeichert. Diese Login ID wird außerdem noch in einem Cookie beim Client gesetzt, der nicht verfällt. Der User ist somit eingeloggt und kann über die in der Session gespeicherte UserID identifiziert werden.
Logoutfunktion
Damit sich der User auch wieder abmelden kann, muss außerdem noch ein Logout-Bereich eingerichtet werden. Das ist allerdings recht einfach und sieht so aus:
PHP:
<?php
session_start();
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'root';
$MYSQL_PASS = 'myPassWord';
$MYSQL_DATA = 'myDataBase';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
// loggt einen User aus, ..
function doLogout()
{
// .. indem das Cookie und ..
if(isset($_COOKIE['Autologin']))
setcookie("Autologin", "", time()-60*60);
// .. die Session ID aus der Datenbank gelöscht werden
$sql = "UPDATE
User
SET
SessionID = NULL,
Autologin = NULL,
IP = NULL
WHERE
ID = '".$_SESSION['UserID']."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
}
// User ausloggen
doLogout();
// $_SESSION leeren
$_SESSION = array();
// Session löschen
session_destroy();
echo "Sie wurden erfolgreich ausgeloggt.<br>\n".
"Zur <a href=\"index.php\">Startseite</a>\n";
?>
Der Logout erfolgt in 3 Schritten:
1. doLogout() - Setzt die Session ID, die IP und den Autologin auf NULL. Zur Identifikation wird die UserID benutzt, die beim Login in der Session gespeichert wird.
2. Das Array $_SESSION leeren
3. Die Session mit session_destroy() zerstören
Automatischer Logout
Der Standard-Internet-Nutzer ist von Natur aus nachlässig und faul, er wird sich also nicht immer selbst ausloggen. Bedenkt man aber Situationen, in denen der User sich in einem Internet Café oder einem anderen öffentlich zugänglichen PC einloggt, so wird klar, dass man als Admin für einen automatischen Logout dieser User sorgen muss. Dazu müssen wir zuerst mal schauen, ob ein User überhaupt aktiv ist:
PHP:
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'root';
$MYSQL_PASS = 'myPassWord';
$MYSQL_DATA = 'myDataBase';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
session_start();
// Online Status der User aktualisieren
if(isset($_SESSION['UserID'])){
$sql = "UPDATE
User
SET
Letzte_Aktion = '".time()."'
WHERE
ID = '".$_SESSION['UserID']."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
}
?>
Ist ein User eingeloggt, so wird die Letzte_Aktion Spalte aktuell gehalten. Dieses Skript sollte am besten auf jeder Seite eingebunden werden, damit der Timestamp wirklich immer aktuell bleibt, egal auf welcher Seite sich der User gerade befindet. So nun prüfen wir, ob ein User länger als.. sagen wir 20 Minuten inaktiv war.
PHP:
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'root';
$MYSQL_PASS = 'myPassWord';
$MYSQL_DATA = 'myDataBase';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
session_start();
// Online Status der User aktualisieren
if(isset($_SESSION['UserID'])){
$sql = "UPDATE
User
SET
Letzte_Aktion = '".time()."'
WHERE
ID = '".$_SESSION['UserID']."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
}
// User ohne Autologin ausloggen
$sql = "UPDATE
User
SET
SessionID = NULL,
Autologin = NULL,
IP = NULL
WHERE
'".(time()-60*20)."' > Letzte_Aktion AND
Autologin IS NULL
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
?>
Dabei achten wir natürlich darauf, dass wir nun diejenigen User ausloggen, die den Autologin nicht aktiviert haben. Jetzt müssen wir noch beachten, dass Sessions nur eine bestimmte Lebenszeit haben. Standardmäßig sind das 24 Minuten und eine Löschwarscheinlichkeit von 1 zu 100. Das bedeutet, dass eine Session die älter als 24 Minuten ist, durchschnittlich bei jedem 100. Aufruf von session_start() gelöscht wird. Älter bedeutet in diesem Zusammenhang, dass der 'Sessionbesitzer' länger als 24 Minuten inaktiv war.
Dadurch entstehen 2 Probleme:
Diejenigen User, die wird eben gerade mittels automatischem Logout ausgeloggt haben, besitzen unter Umständen noch eine aktive Session. D.h. selbst wenn sie für uns schon ausgeloggt sind, besteht noch $_SESSION['UserID']. Das kann zu Fehlern in unseren Skripten führen. Für die Lösung dieses Problems müssen wird das Skript noch folgendermaßen erweitern:
PHP:
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'root';
$MYSQL_PASS = 'myPassWord';
$MYSQL_DATA = 'myDataBase';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
session_start();
// Online Status der User aktualisieren
if(isset($_SESSION['UserID'])){
$sql = "UPDATE
User
SET
Letzte_Aktion = '".time()."'
WHERE
ID = '".$_SESSION['UserID']."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
}
// User ohne Autologin ausloggen
$sql = "UPDATE
User
SET
SessionID = NULL,
Autologin = NULL,
IP = NULL
WHERE
'".(time()-60*20)."' > Letzte_Aktion AND
Autologin IS NULL
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// Kontrollieren, ob ein automatisch ausgeloggter User noch eine gültige Session besitzt
if(isset($_SESSION['UserID'])){
$sql = "SELECT
SessionID
FROM
User
WHERE
ID = '".$_SESSION['UserID']."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
if(!$row['SessionID']){
$_SESSION = array();
session_destroy();
}
}
?>
Jeder User mit einer User ID in der Session wird nun geprüft, ob er noch eingeloggt ist, also ob seine Session ID in der Datenbank noch existiert. Wenn das nicht der Fall ist, also unser Autologoutsystem ihn bereits ausgeloggt hat, dann leeren und vernichten wir nun noch seine Session.
Das zweite Problem ergibt sich aus den Usern, die den Autologin aktiviert haben. Ihre Session wird über kurz oder lang sterben, weil sie z.B. über Nacht inaktiv sind. Beim nächten Besuchen der Website existiert nun ihre Session nicht mehr, demnach also auch keine User ID mehr. Für uns ist der User damit nicht eingeloggt. Hier kommt nun unsere Login ID zum Tragen, die wir im Cookie gespeichert haben. Vor den anderen oben genannten Kontrollabfragen muss nun noch folgender Query eingebaut werde:
PHP:
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'root';
$MYSQL_PASS = 'myPassWord';
$MYSQL_DATA = 'myDataBase';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
session_start();
// Prüfen, ob ein Autologin des Users stattfinden muss
if(isset($_COOKIE['Autologin']) AND !isset($_SESSION['UserID'])){
$sql = "SELECT
ID
FROM
User
WHERE
Autologin = '".mysql_real_escape_string($_COOKIE['Autologin'])."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
if(mysql_num_rows($result) == 1)
doLogin($row['ID'], '1');
}
// Online Status der User aktualisieren
if(isset($_SESSION['UserID'])){
$sql = "UPDATE
User
SET
Letzte_Aktion = '".time()."'
WHERE
ID = '".$_SESSION['UserID']."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
}
// User ohne Autologin ausloggen
$sql = "UPDATE
User
SET
SessionID = NULL,
Autologin = NULL,
IP = NULL
WHERE
'".(time()-60*20)."' > Letzte_Aktion AND
Autologin IS NULL
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// Kontrollieren, ob ein automatisch ausgeloggter User noch eine gültige Session besitzt
if(isset($_SESSION['UserID'])){
$sql = "SELECT
SessionID
FROM
User
WHERE
ID = '".$_SESSION['UserID']."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
if(!$row['SessionID']){
$_SESSION = array();
session_destroy();
}
}
?>
Es wird geprüft, ob ein Autologin Cookie gesetzt wurde und ob der Wert darin irgendwo in der Datenbank auftaucht. Ist dies der Fall, wird der gefundene User mit der doLogin()-Funktion eingeloggt und damit wird seine Session wieder aktualisiert.
Passwort-vergessen-Funktion
Als letztes folgt nun noch die Passwort-vergessen-Funktion. Der Nutzen ist ja eigentlich offensichtlich. Wenn der User mal sein Passwort vergessen hat, kann ein neues Passwort generiert und an seine Email-Adresse geschickt werden. Dazu ist die Angabe seines Nicknames notwendig. Dies geschiet wie immer durch ein Formular. Danach wird die Datenbank nach dem Nickname durchsucht. Wurde er gefunden, wird das alte Passwort gelöscht und ein neues gespeichert und an die angegebene Email-Adresse geschickt. Ich schreibe das jetzt nicht mehr Abschnittsweise, weil es mir einfach zu langatmig wird. Die komplizierten Stellen werde ich natürlich kommentieren, aber sonstige Fragen können dann im Forum gestellt werden.
PHP:
<?php
error_reporting(E_ALL);
$MYSQL_HOST = 'localhost';
$MYSQL_USER = 'root';
$MYSQL_PASS = 'myPassWord';
$MYSQL_DATA = 'myDataBase';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
if(isset($_POST['submit']) AND $_POST['submit']=='Abschicken'){
// Daten prüfen
$errors = array();
if(!isset($_POST['Nickname']))
$errors[] = "Bitte benutzen Sie unser Passwortformular";
else{
if(trim($_POST['Nickname']) == "")
$errors[] = "Geben Sie Ihren Nickname an.";
// Nickname suchen
$sql = "SELECT
Email
FROM
User
WHERE
Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
if(!$row)
$errors[] = "Ihr Nickname konnte nicht gefunden werden.\n";
}
if(count($errors)){
echo "Ihr Passwort konnte nicht versendet werden.<br>\n".
"<br>\n";
foreach($errors as $error)
echo $error."<br>\n";
echo "<br>\n";
echo "Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Formular</a>\n";
}
else {
// Neues Passwort erstellen
$passwort = substr(md5(microtime()),0,8);
$sql = "UPDATE
User
SET
Passwort = '".md5(trim($passwort))."'
WHERE
Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// Email verschicken
$empfaenger = $row['Email'];
$titel = "Neues Passwort";
$mailbody = "Ihr neues Passwort lautet:\n\n".
$passwort."\n\n".
"Ihr altes Passwort wurde gelöscht.";
$header = "From: webmaster@mywebsolution.de\n";
if(@mail($empfaenger, $titel, $mailbody, $header)){
echo "Ihr neues Passwort wurde erfolgreich an Ihre Email-Adresse versandt.<br>\n".
"Zurück zur <a href=\"index.php\">Startseite</a>\n";
}
// Im Fehlerfall wird die Mailadresse des Webmasters für den direkten Versandt eingeblendet
else{
echo "Beim Senden der Email trat ein Fehler auf.<br>\n".
"Bitte wenden Sie sich direkt an den <a href=\"mailto:webmaster@website.de\">Webmaster</a>.\n";
}
}
}
else{
echo "<form ".
" name=\"Passwort\" ".
" action=\"".$_SERVER['PHP_SELF']."\" ".
" method=\"post\" ".
" accept-charset=\"ISO-8859-1\">\n";
echo "Nickname :\n";
echo "<input type=\"text\" name=\"Nickname\" maxlength=\"32\">\n";
echo "<br>\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Abschicken\">\n";
echo "</form>\n";
}
?>
Verwendete Funktionen:
substr()
microtime()
mail()
Zurück zur vorigen Seite:
PHP Loginsystem - User registrieren Weiter zur nächsten Seite:
PHP Loginsystem - Benutzerliste und Userprofile