[Tutorial] Memberbereich mit $_SESSION[] - [Teil 6 von 10]Sie befinden sich: Home > Webmaster News
[Tutorial] Memberbereich mit $_SESSION[] - [Teil 6 von 10]
Um den Code hier übersichtlich zu halten, sehen Sie hier ab sofort nur noch diesen Teil:
<?php
// Wurde das Formular abgeschickt?
if(!empty($_POST['Submit'])) {
}
?>
Dieser Teil wird dann durchlaufen, wenn das Formular abgeschickt wurde. Hier werden zunächst die Eingaben des Anmelders aus dem POST-Array in die geplanten Variablen geholt und diese auf Plausibilität geprüft. Werden Fehler festgestellt, wird das ausgefüllte Formular neu angezeigt und ein entsprechender Hinweis ausgegeben.
Sind die Eingaben formal richtig, wird noch geprüft, ob der eingegebene Name oder die eingegebene E-Mail-Adresse schon in der Datenbank vorhanden sind. Hierzu werden weitere Fehlermeldungen erzeugt und das Formular neu ausgegeben.
Wenn alle Prüfungen bis hierher bestanden wurden, werden die eingegebenen Daten in der user-access-Tabelle gespeichert und die Kontrollmail verschickt. Danach leiten wir weiter zur Dankseite.
<?php
/**
* Wurde das Formular abgeschickt?
*/
if(!empty($_POST['Submit'])) {
// Fehlermeldung löschen
$fehler = '';
// Eingaben verarbeiten
$email = eingabe('email');
$name = eingabe('name');
$passwort = eingabe('passwort');
// Ist die E-Mail-Adresse formal korrekt?
if(!preg_match("/^([w|.|-|_]+)@([w||-|_]+).([w|.|-|_]+)$/i",$email))
$fehler.='Bitte geben Sie Ihre Emailadressse ein<br>';
/* Der Name sollte mindestens 4 Zeichen lang sein */
if(strlen($name)<4 )
$fehler.= 'Bitte geben Sie einen Namen mit mindestens 4 Zeichen ein';
/* Das Passwort sollte mindestens 6 Zeichen lang sein */
if(strlen($passwort)<6 )
$fehler.= 'Bitte geben Sie ein Passwort mit mindestens 6 Zeichen ein';
/* Wenn alle Eingaben richtig waren, das ist $fehler immer noch leer */
if($fehler == '') {
/* Alle Eingaben formal ok. Es muss noch geprüft werden, ob der Name schon vorhanden ist */
/* Zur Datenbank verbinden */
include 'connect.php';
$sql = "SELECT userid FROM user_access WHERE userid = '".mysql_real_escape_string($name)."'";
$erg=mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($erg))
$fehler = 'Der Name ' . htmlspecialchars($name) . 'ist bereits gespeichert. Bitte wählen Sie einen anderen Namen.';
}
if($fehler == '') {
/* Es muss noch geprüft werden, ob die E-Mail schon vorhanden ist*/
$sql = "SELECT userid FROM user_access WHERE email = '".mysql_real_escape_string($email)."'";
$erg=mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($erg))
$fehler = 'Es existiert schon ein User mit der E-Mail-Adresse ' . htmlspecialchars($email) . '. Bitte wenden Sie sich ggf. an den Support.';
}
if($fehler == '') {
/* Wenn $fehler immer noch leer ist, dann kann nun alles gespeichert werden. */
/* IP des Besuchers */
if (getenv("HTTP_X_FORWARDED_FOR")) {
$realip = getenv("HTTP_X_FORWARDED_FOR");
} else {
$realip = getenv("REMOTE_ADDR");
}
$passmd5 = md5($passswort);
$code = md5(uniqid(rand()));
$sql = "INSERT INTO user_access (";
$sql.= " userid, ";
$sql.= " passwort, ";
$sql.= " email, ";
$sql.= " userstatus, ";
$sql.= " datum_anmeldung, ";
$sql.= " ip_anmeldung, ";
$sql.= " code";
$sql.= ") VALUES (";
$sql.= " '".mysql_real_escape_string($name)."',";
$sql.= " '".mysql_real_escape_string($passmd5)."',";
$sql.= " '".mysql_real_escape_string($email)."',";
$sql.= " 'neu',";
$sql.= " now(),";
$sql.= " '".mysql_real_escape_string($realip)."',";
$sql.= " '".mysql_real_escape_string($code)."'";
$sql.= ")";
mysql_query($sql) or die(mysql_error());
$id = mysql_insert_id();
// E-Mail senden
$from = 'absender@XXX.de';
$mailto = $email;
$subject = 'Bitte Anmeldung bestaetigen';
$cc = $bcc = '';
$message_text ="
Sie haben Sich mit diesen Daten angemeldet:
Name: $name
Passwort: $passwort
Um die Anmeldung abzuschließen, hier klicken:
https://XXX.de/bestaetigung.php?id=$id&code=$code
";
@mail( $mailto, $subject, $message_text, "From:".$fromn."CC:".$ccn."BCC:".$bccn);
/* Alles gespeichert, nun die Dankeseite ausgeben */
$wohin = 'anmelden_danke.php';
header("Location: $wohin");
exit;
}
}
?>
Teile dieses Tutorials: -1- -2- -3- -4- -5- -6- -7- -8- -9- -10- (Autor: Wolfgang), Eingetragen am 14.07.2008
Schreib ein Kommentar
|