Anmeldung
<?php
Entsprechende Datenbank Verbindung einfügen
Prüfen ob User eingeloggt ist oder nicht einfügen
Freischalt Code erstellen
function CodeString($length=12)
{
return substr(str_shuffle(str_repeat($x='1234567890987654321', ceil($length/strlen($x)))), 1,$length);
}
{
return substr(str_shuffle(str_repeat($x='1234567890987654321', ceil($length/strlen($x)))), 1,$length);
}
Variable timestamp setzen
$timestamp=date("Y-m-d H:i:s");
Variable postmaster definieren
$postmaster="<dein webseitenname>";
Benutzende Variablen auf leere Werte setzen
$user_name=$email=$password=$confirm_password="";
$username_err=$mail_err=$password_err=$confirm_password_err="";
$username_err=$mail_err=$password_err=$confirm_password_err="";
Formulardaten werden verarbeitet, wenn das Formular gesendet wird einfügen
POST für Username prüfen
$postusername=isset($_POST['username']) ? $_POST['username'] : "";
if (empty($postusername))
{
$username_err="Feld Username ist leer!";
}
elseif ((strlen(trim($postusername)) < 5) || (strlen(trim($postusername))) > 40)
{
$username_err="Username minimal 5 maximal 40 Zeichen!";
}
else
{
$user_name=trim($postusername);
if ($user_name === false)
{
$username_err="Dies ist kein Username!";
}
if (empty($postusername))
{
$username_err="Feld Username ist leer!";
}
elseif ((strlen(trim($postusername)) < 5) || (strlen(trim($postusername))) > 40)
{
$username_err="Username minimal 5 maximal 40 Zeichen!";
}
else
{
$user_name=trim($postusername);
if ($user_name === false)
{
$username_err="Dies ist kein Username!";
}
und prüfen ob Username schon vorhanden ist
Datenbank abfrage
$stmt = $msql->prepare("SELECT username FROM usertable WHERE username=?");
$stmt->bind_param("s", $param_username);
$param_username=$user_name;
if ($stmt->execute())
{
$stmt->store_result();
$stmt->bind_param("s", $param_username);
$param_username=$user_name;
if ($stmt->execute())
{
$stmt->store_result();
Daten ausgabe
if ($stmt->num_rows == 1)
{
$username_err="Dieser Username ist schon vorhanden!";
}
}
}
{
$username_err="Dieser Username ist schon vorhanden!";
}
}
}
$stmt=$pdo->prepare("SELECT username FROM usertable WHERE username=:username");
$stmt->bindParam(":username", $param_username, PDO::PARAM_STR);
$param_username=$user_name;
if ($stmt->execute())
{
$stmt->bindParam(":username", $param_username, PDO::PARAM_STR);
$param_username=$user_name;
if ($stmt->execute())
{
Daten ausgabe
if ($stmt->rowCount() == 1)
{
$username_err="Dieser Username ist schon vorhanden!";
}
}
}
{
$username_err="Dieser Username ist schon vorhanden!";
}
}
}
POST für eMail prüfen
$postmail=isset($_POST['email']) ? $_POST['email'] : "";
if (empty($postmail))
{
$mail_err="Feld eMail ist leer!";
}
elseif ((strlen(trim($postmail)) < 8) || (strlen(trim($postmail))) > 75)
{
$mail_err="eMail minimal 8 maximal 75 Zeichen!";
}
else
{
$email=filter_var(trim($postmail), FILTER_VALIDATE_EMAIL);
if (!preg_match("/^[a-z]{2,}[w.+-]{1,}+@[^@]+.[a-z]{2,3}$/i",$email))
{
$email_err="Bitte eine valide eMail-Adresse eingeben";
}
if ($email === false)
{
$mail_err="Dies ist keine eMail-Adresse!";
}
if (empty($postmail))
{
$mail_err="Feld eMail ist leer!";
}
elseif ((strlen(trim($postmail)) < 8) || (strlen(trim($postmail))) > 75)
{
$mail_err="eMail minimal 8 maximal 75 Zeichen!";
}
else
{
$email=filter_var(trim($postmail), FILTER_VALIDATE_EMAIL);
if (!preg_match("/^[a-z]{2,}[w.+-]{1,}+@[^@]+.[a-z]{2,3}$/i",$email))
{
$email_err="Bitte eine valide eMail-Adresse eingeben";
}
if ($email === false)
{
$mail_err="Dies ist keine eMail-Adresse!";
}
und prüfen ob eMail schon vorhanden ist
Datenbank abfrage
$stmt=$msql->prepare("SELECT usermail FROM usertable WHERE usermail=?");
$stmt->bind_param("s", $param_usermail);
$param_usermail=$email;
if ($stmt->execute())
{
$stmt->store_result();
$stmt->bind_param("s", $param_usermail);
$param_usermail=$email;
if ($stmt->execute())
{
$stmt->store_result();
Daten ausgabe
if ($stmt->num_rows == 1)
{
$mail_err="Diese eMail-Adresse ist schon vorhanden!";
}
}
}
{
$mail_err="Diese eMail-Adresse ist schon vorhanden!";
}
}
}
$stmt=$pdo->prepare("SELECT usermail FROM usertable WHERE usermail=:usermail");
$stmt->bindParam(":usermail", $param_usermail, PDO::PARAM_STR);
$param_usermail=$email;
if ($stmt->execute())
{
$stmt->bindParam(":usermail", $param_usermail, PDO::PARAM_STR);
$param_usermail=$email;
if ($stmt->execute())
{
Daten ausgabe
if ($stmt->rowCount() == 1)
{
$mail_err="Diese eMail-Adresse ist schon vorhanden!";
}
}
}
{
$mail_err="Diese eMail-Adresse ist schon vorhanden!";
}
}
}
POST für Passwort prüfen einfügen
POST für Passwort wiederholen prüfen und
Passwörter auf übereinstimmung prüfen einfügen
Freischalt-Code als Variable
$code=IntVal(CodeString());
Keine Fehler Inhalt ausführen
if (empty($username_err) && empty($password_err) && empty($confirm_password_err) && empty($mail_err))
{
{
Formulareingaben und Code für eMail sortieren
$subject=$postmaster."\n";
$empfaenger=trim($email);
$text="Hallo: ".htmlspecialchars($user_name)."\n";
$text.="Betreff:Registrierung\n";
$text.="Dein Freischaltcode: ".$code;
$empfaenger=trim($email);
$text="Hallo: ".htmlspecialchars($user_name)."\n";
$text.="Betreff:Registrierung\n";
$text.="Dein Freischaltcode: ".$code;
Formulareingaben versenden
mail($empfaenger,$subject,$text);
Formulareingaben in Datenbank schreiben
$stmt=$msql->prepare("INSERT INTO usertable (username, usermail, userpass, datum, code) VALUES(?, ?, ?, ?, ?)");
$stmt->bind_param("ssssi", $param_username, $param_mail, $param_password, $param_datum, $param_cod);
$param_username=$msql->real_escape_string($user_name);
$param_mail=$msql->real_escape_string($email);
$passw=password_hash($password, PASSWORD_DEFAULT);
$param_password=$msql->real_escape_string($passw);
$param_datum=$msql->real_escape_string($timestamp);
$param_cod=$msql->real_escape_string($code);
$stmt->bind_param("ssssi", $param_username, $param_mail, $param_password, $param_datum, $param_cod);
$param_username=$msql->real_escape_string($user_name);
$param_mail=$msql->real_escape_string($email);
$passw=password_hash($password, PASSWORD_DEFAULT);
$param_password=$msql->real_escape_string($passw);
$param_datum=$msql->real_escape_string($timestamp);
$param_cod=$msql->real_escape_string($code);
$stmt=$pdo->prepare("INSERT INTO usertable (username, usermail, userpass, datum, code) VALUES(:param_username, :param_mail, :param_password, :param_datum, :param_cod)");
$stmt->bindParam(":param_username", $user_name, PDO::PARAM_STR);
$stmt->bindParam(":param_mail", $email, PDO::PARAM_STR);
$stmt->bindParam(":param_password", $param_password, PDO::PARAM_STR);
$stmt->bindParam(":param_datum", $timestamp, PDO::PARAM_STR);
$stmt->bindParam(":param_cod", $code, PDO::PARAM_INT);
$param_password=password_hash($password, PASSWORD_DEFAULT);
$stmt->bindParam(":param_username", $user_name, PDO::PARAM_STR);
$stmt->bindParam(":param_mail", $email, PDO::PARAM_STR);
$stmt->bindParam(":param_password", $param_password, PDO::PARAM_STR);
$stmt->bindParam(":param_datum", $timestamp, PDO::PARAM_STR);
$stmt->bindParam(":param_cod", $code, PDO::PARAM_INT);
$param_password=password_hash($password, PASSWORD_DEFAULT);
Meldung
if ($stmt->execute())
{
echo 'Die Daten wurden an die eingetragene eMail-Adresse versand.';
echo 'Account <a href="freischalten.html">Freischalten</a>'; exit; }
else
{
echo "ERROR! Bitte nochmals versuchen!";
}
{
echo 'Die Daten wurden an die eingetragene eMail-Adresse versand.';
echo 'Account <a href="freischalten.html">Freischalten</a>'; exit; }
else
{
echo "ERROR! Bitte nochmals versuchen!";
}
Objekt schließen einfügen
Keine Fehler Ende
}
Verbindung beenden einfügen
Formulardaten wurden gesendet ende
}
?>
registrieren.html
Zum Registrieren wird ein Formular benötigt.
Formular muß erstellt werden
Beginn einer Html 5 Seite einfügen
Anfang Inhaltsbereich einfügen
Wie soll das Formular wo hin
<form method="post" action="registrieren.php">
Feld für Username einfügen
Feld für eMail variante 2 einfügen
Feld für Passwort einfügen
Feld für Passwort wiederholen einfügen
Feld für Senden einfügen
Ende eines Formulares einfügen
Schon registriert: <a href="login.html">Login</a>
Ende Inhaltsbereich einfügen
Ende einer Html Seite einfügen