Hallo Ihr fleißigen Hacker,
ich brauche mal wieder eure Hilfe. Habe ein Formular zur Registrierung neuer 'user' gebastelt und stehe an folgendem Punkt auf dem Schlauch.
Alles funktioniert einwandfrei: Die user werden in der Datenbank angelegt, bekommen eine Bestätigungs-Mail mit Ihren Zugangsdaten zugesandt und auch der Seitenbetreiber erhält per Mail eine Info, dass sich ein neuer 'user' registriert hat - aber jetzt kommt's. Macht ein potentieller neuer user einen Fehler bei der Eingabe bekommt er den Fehler angezeigt und muss seine Eingabe korrigieren. Dazu wird das Formular inkl. der vorhandenen Variablen erneut dargestellt. Schickt er nun das Formular erneut ab wird die Fehlerprüfung umgangen und die Daten werden ungeprüft in die Datenbank geschrieben, worauf eine positive Rückmeldung erfolgt.
Fehler anzeigen und Formular erneut darstellen, läuft im Moment so:
darauf folgt dann aber nicht mehr das 'escapen' der variablen und die Fehlerprüfung wie in der ersten Runde der Eingabe, sondern ein 'else' was zum Eintrag der Variablen führt.
Hier mal das ganze Skript zum nachvollziehen meines Problems:
Wie bereits erwähnt, es läuft schon ganz prima. Im Prinzip will ich jetzt nur noch, dass der user nach einer Fehleingabe oder wenn er was vergessen hat, nicht das ganze Formular erneut ausfüllen muss und natürlich soll auch wieder 'escaped' und auf Fehler geprüft werden.
Bin gespannt auf eure Antworten und bedanke mich schonmal im Voraus !
ich brauche mal wieder eure Hilfe. Habe ein Formular zur Registrierung neuer 'user' gebastelt und stehe an folgendem Punkt auf dem Schlauch.
Alles funktioniert einwandfrei: Die user werden in der Datenbank angelegt, bekommen eine Bestätigungs-Mail mit Ihren Zugangsdaten zugesandt und auch der Seitenbetreiber erhält per Mail eine Info, dass sich ein neuer 'user' registriert hat - aber jetzt kommt's. Macht ein potentieller neuer user einen Fehler bei der Eingabe bekommt er den Fehler angezeigt und muss seine Eingabe korrigieren. Dazu wird das Formular inkl. der vorhandenen Variablen erneut dargestellt. Schickt er nun das Formular erneut ab wird die Fehlerprüfung umgangen und die Daten werden ungeprüft in die Datenbank geschrieben, worauf eine positive Rückmeldung erfolgt.
Fehler anzeigen und Formular erneut darstellen, läuft im Moment so:
PHP:
if(count($errors) > 0){
foreach($errors AS $error){
echo $error . "<br>\n";
}
if(count($errors) > 0)
{
// Hier wird jetzt das Formular wieder dargestellt
darauf folgt dann aber nicht mehr das 'escapen' der variablen und die Fehlerprüfung wie in der ersten Runde der Eingabe, sondern ein 'else' was zum Eintrag der Variablen führt.
Hier mal das ganze Skript zum nachvollziehen meines Problems:
PHP:
<?php
include_once "registerfunctions.php";
connect();
if(!$_POST['submit']){
echo "<table border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n";
echo "<form method=\"post\" action=\"register.php\">\n";
echo "<td><h3>Firmendaten</h3></td>\n";
echo "<tr><td>Firmenname</td><td><input type=\"text\" name=\"firmierung\"> *</td></tr>\n";
echo "<tr><td> </td></tr>\n";
echo "<td><h3>Persönliche Daten</h3></td>\n";
echo "<tr><td>Anrede</td><td><select name=\"anrede\"><option value=\"Bitte wählen\">Bitte wählen<option value=\"Frau\">Frau<option value=\"Herr\">Herr</select> *</td></tr>\n";
echo "<tr><td>Titel</td><td><input type=\"text\" name=\"titel\"> </td></tr>\n";
echo "<tr><td>Name</td><td><input type=\"text\" name=\"name\"> *</td></tr>\n";
echo "<tr><td>Vorname</td><td><input type=\"text\" name=\"vorname\"> *</td></tr>\n";
echo "<tr><td>Geburtsdatum</td><td><input type=\"text\" name=\"geburtsdatum\"> *</td></tr>\n";
echo "<tr><td>Strasse</td><td><input type=\"text\" name=\"strasse\"> *</td></tr>\n";
echo "<tr><td>Hausnummer</td><td><input type=\"text\" size=\"4\" name=\"hausnummer\"> *</td></tr>\n";
echo "<tr><td>PLZ</td><td><input type=\"text\" size=\"5\" name=\"plz\"> *</td></tr>\n";
echo "<tr><td>Ort</td><td><input type=\"text\" name=\"ort\"> *</td></tr>\n";
echo "<tr><td>Land</td><td><input type=\"text\" name=\"land\"> *</td></tr>\n";
echo "<tr><td>Telefon privat</td><td><input type=\"text\" name=\"telprivat\"></td></tr>\n";
echo "<tr><td>Telefon geschäftlich</td><td><input type=\"text\" name=\"telgeschaeftlich\"> *</td></tr>\n";
echo "<tr><td>Fax</td><td><input type=\"text\" name=\"fax\"></td></tr>\n";
echo "<tr><td>Mobil</td><td><input type=\"text\" name=\"mobil\"></td></tr>\n";
echo "<tr><td>E-Mail</td><td><input type=\"text\" name=\"email\"> *</td></tr>\n";
echo "<tr><td>Homepage</td><td><input type=\"text\" name=\"homepage\"></td></tr>\n";
echo "<tr><td> </td></tr>\n";
echo "<td><h3>Passwort</h3></td>\n";
echo "<tr><td>Passwort</td><td><input type=\"password\" name=\"passwort\"> *</td></tr>\n";
echo "<tr><td>Passwort bestätigen</td><td><input type=\"password\" name=\"passconf\"> *</td></tr>\n";
echo "<tr><td> </td></tr>\n";
echo "<td><h3>Bankverbindung</h3></td>\n";
echo "<tr><td>Bank</td><td><input type=\"text\" name=\"bank\"> *</td></tr>\n";
echo "<tr><td>Kontonummer</td><td><input type=\"text\" name=\"kontonummer\"> *</td></tr>\n";
echo "<tr><td>Bankleitzahl</td><td><input type=\"text\" name=\"blz\"> *</td></tr>\n";
echo "<tr><td>IBAN</td><td><input type=\"text\" name=\"iban\"></td></tr>\n";
echo "<tr><td>BIC</td><td><input type=\"text\" name=\"bic\"></td></tr>\n";
echo "<tr><td> </td></tr>\n";
echo "<tr><td colspan=\"2\" align=\"left\"><input type=\"submit\" name=\"submit\" value=\"Registrieren\"></td></tr>\n";
echo "</form></table>\n";
}
else
{
$firmierung = protect($_POST['firmierung']);
$passwort = protect($_POST['passwort']);
$confirm = protect($_POST['passconf']);
$anrede = protect($_POST['anrede']);
$titel = protect($_POST['titel']);
$name = protect($_POST['name']);
$vorname = protect($_POST['vorname']);
$geburtsdatum = protect($_POST['geburtsdatum']);
$strasse = protect($_POST['strasse']);
$hausnummer = protect($_POST['hausnummer']);
$plz = protect($_POST['plz']);
$ort = protect($_POST['ort']);
$land = protect($_POST['land']);
$telprivat = protect($_POST['telprivat']);
$telgeschaeftlich = protect($_POST['telgeschaeftlich']);
$fax = protect($_POST['fax']);
$mobil = protect($_POST['mobil']);
$email = protect($_POST['email']);
$homepage = protect($_POST['homepage']);
$provision = "-";
$notizen = "keine Eintragungen";
$bank = protect($_POST['bank']);
$kontonummer = protect($_POST['kontonummer']);
$blz = protect($_POST['blz']);
$iban = protect($_POST['iban']);
$bic = protect($_POST['bic']);
$accountstatus = "inaktiv";
$gewerbeerlaubnis = "Gewerbeerlaubnis liegt nicht vor.";
$gewerbeanmeldung = "Gewerbeanmeldung liegt nicht vor.";
$fuehrungszeugnis = "Führungszeugnis liegt nicht vor.";
$gewerbezentralregister = "Auszug aus dem Gewerbezentralregister liegt nicht vor.";
$registrierungsdatum = protect (date("d.m.Y"));
$errors = array();
if(!$passwort){
$errors[] = "Passwort ist nicht angegeben!";
}
if($passwort){
if(!$confirm){
$errors[] = "Passwortbestätigung ist nicht angegeben oder falsch!";
}
}
if(!$email){
$errors[] = "E-Mail-Adresse ist nicht angegeben!";
}
if(!$firmierung){
$errors[] = "Firmenname ist nicht angegeben!";
}
if(!$name){
$errors[] = "Name ist nicht angegeben!";
}
if(!$vorname){
$errors[] = "Vorname ist nicht angegeben!";
}
if(!$geburtsdatum){
$errors[] = "Geburtsdatum ist nicht angegeben!";
}
if(!$strasse){
$errors[] = "Strasse ist nicht angegeben!";
}
if(!$hausnummer){
$errors[] = "Hausnummer ist nicht angegeben!";
}
if(!$plz){
$errors[] = "Postleitzahl ist nicht angegeben!";
}
if(!$ort){
$errors[] = "Ort ist nicht angegeben!";
}
if(!$land){
$errors[] = "Land ist nicht angegeben!";
}
if(!$telgeschaeftlich){
$errors[] = "Telefon geschäftlich ist nicht angegeben!";
}
if(!$bank){
$errors[] = "Bank ist nicht angegeben!";
}
if(!$kontonummer){
$errors[] = "Kontonummer ist nicht angegeben!";
}
if(!$blz){
$errors[] = "Bankleitzahl ist nicht angegeben!";
}
if($email){
$checkemail = "/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i";
if(!preg_match($checkemail, $email)){
$errors[] = "Dies ist keine gültige E-mail Adresse. Eingabeformat: name@server.tld !";
}
}
if($email){
$sql2 = "SELECT * FROM `tabelle` WHERE `email`='".$email."'";
$res2 = mysql_query($sql2) or die(mysql_error());
if(mysql_num_rows($res2) > 0){
$errors[] = "Es gibt bereits einen Benutzer mit dieser E-Mail-Adresse in unserer Datenbank.<br />Sollten Sie Ihr Passwort vergessen haben, klicken sie bitte <a href='passwortvergessen.php'>hier</a> !";
}
}
//Bestätigungsmail an Benutzer versenden
if(count($errors) == 0) // Keine Fehler beim ausfüllen des Formulars
{
$sender = "noreply@domain.tld";
$empfaenger = $email;
$betreff = "Ihre Registrierung";
$mailtext = "Sehr geehrte/r $anrede $name,<br />Sie haben sich erfolgreich für unseren Service registriert.<br /><br />Bitte melden Sie sich unter ... mit den folgenden Daten an, um zu erfahren wie Sie Ihren persönlichen Servicebereich innerhalb kürzester Zeit in vollem Umfang nutzen können.<br /><br /><br />Ihre Zugangsdaten:<br /><br />E-Mail-Adresse: $email<br />Passwort: $passwort";
mail($empfaenger, $betreff, $mailtext, "From: $sender\n" . "Content-Type: text/html; charset=iso-8859-1\n");
} //Ende Bestätigungsmail an Benutzer versenden
//Benachrichtigung versenden
if(count($errors) == 0) // Keine Fehler beim ausfüllen des Formulars
{
$sender = "noreply@domain.tld";
$empfaenger = "adresse@domain.tld";
$betreff = "$anrede $titel $vorname $name - Registrierung auf http://www.domain.tld";
$mailtext = "Sehr geehrte Damen und Herren,<br />$anrede $titel $vorname $name hat sich für den Service mit folgenden Daten registriert:<br /><br /><br />Firmenname:<br />$firmierung<br /><br />Geburtsdatum:<br />$geburtsdatum<br /><br />Adresse:<br />$strasse $hausnummer<br />$plz $ort<br />$land<br /><br />Telefon privat:<br />$telprivat<br />Telefon geschäftlich:<br />$telgeschaeftlich<br />Fax:<br />$fax<br />Mobil:<br />$mobil<br />E-Mail:<br /><a href='mailto:$email'>$email</a><br />Homepage:<br /><a href='http://$homepage'>http://$homepage</a><br /><br />Bank:<br />$bank<br />Kontonummer:<br />$kontonummer<br />Bankleitzahl:<br />$blz<br />IBAN:<br />$iban<br />BIC:<br />$bic<br /><br />Passwort:<br />$passwort";
mail($empfaenger, $betreff, $mailtext, "From: $sender\n" . "Content-Type: text/html; charset=iso-8859-1\n");
} //Ende Benachrichtigung versenden
if(count($errors) > 0){
foreach($errors AS $error){
echo $error . "<br>\n";
}
if(count($errors) > 0)
{
echo "<table border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n";
echo "<form method=\"post\" action=\"register.php\">\n";
echo "<td><h3>Firmendaten</h3></td>\n";
echo "<tr><td>Firmenname</td><td><input type=\"text\" name=\"firmierung\" value=\"$firmierung\"> *</td></tr>\n";
echo "<tr><td> </td></tr>\n";
echo "<td><h3>Persönliche Daten</h3></td>\n";
echo "<tr><td>Anrede</td><td><select name=\"anrede\"><option value=\"$anrede\">$anrede<option value=\"Frau\">Frau<option value=\"Herr\">Herr</select> *</td></tr>\n";
echo "<tr><td>Titel</td><td><input type=\"text\" name=\"titel\" value=\"$titel\"> </td></tr>\n";
echo "<tr><td>Name</td><td><input type=\"text\" name=\"name\" value=\"$name\"> *</td></tr>\n";
echo "<tr><td>Vorname</td><td><input type=\"text\" name=\"vorname\" value=\"$vorname\"> *</td></tr>\n";
echo "<tr><td>Geburtsdatum</td><td><input type=\"text\" name=\"geburtsdatum\" value=\"$geburtsdatum\"> *</td></tr>\n";
echo "<tr><td>Strasse</td><td><input type=\"text\" name=\"strasse\" value=\"$strasse\"> *</td></tr>\n";
echo "<tr><td>Hausnummer</td><td><input type=\"text\" size=\"4\" name=\"hausnummer\" value=\"$hausnummer\"> *</td></tr>\n";
echo "<tr><td>PLZ</td><td><input type=\"text\" size=\"5\" name=\"plz\" value=\"$plz\"> *</td></tr>\n";
echo "<tr><td>Ort</td><td><input type=\"text\" name=\"ort\" value=\"$ort\"> *</td></tr>\n";
echo "<tr><td>Land</td><td><input type=\"text\" name=\"land\" value=\"$land\"> *</td></tr>\n";
echo "<tr><td>Telefon privat</td><td><input type=\"text\" name=\"telprivat\" value=\"$telprivat\"></td></tr>\n";
echo "<tr><td>Telefon geschäftlich</td><td><input type=\"text\" name=\"telgeschaeftlich\" value=\"$telgeschaeftlich\"> *</td></tr>\n";
echo "<tr><td>Fax</td><td><input type=\"text\" name=\"fax\" value=\"$fax\"></td></tr>\n";
echo "<tr><td>Mobil</td><td><input type=\"text\" name=\"mobil\" value=\"$mobil\"></td></tr>\n";
echo "<tr><td>E-Mail</td><td><input type=\"text\" name=\"email\" value=\"$email\"> *</td></tr>\n";
echo "<tr><td>Homepage</td><td><input type=\"text\" name=\"homepage\" value=\"$homepage\"></td></tr>\n";
echo "<tr><td> </td></tr>\n";
echo "<td><h3>Passwort</h3></td>\n";
echo "<tr><td>Passwort</td><td><input type=\"password\" name=\"passwort\" value=\"$passwort\"> *</td></tr>\n";
echo "<tr><td>Passwort bestätigen</td><td><input type=\"password\" name=\"passconf\" value=\"$passconf\"> *</td></tr>\n";
echo "<tr><td> </td></tr>\n";
echo "<td><h3>Bankverbindung</h3></td>\n";
echo "<tr><td>Bank</td><td><input type=\"text\" name=\"bank\" value=\"$bank\"> *</td></tr>\n";
echo "<tr><td>Kontonummer</td><td><input type=\"text\" name=\"kontonummer\" value=\"$kontonummer\"> *</td></tr>\n";
echo "<tr><td>Bankleitzahl</td><td><input type=\"text\" name=\"blz\" value=\"$blz\"> *</td></tr>\n";
echo "<tr><td>IBAN</td><td><input type=\"text\" name=\"iban\" value=\"$iban\"></td></tr>\n";
echo "<tr><td>BIC</td><td><input type=\"text\" name=\"bic\" value=\"$bic\"></td></tr>\n";
echo "<tr><td> </td></tr>\n";
echo "<tr><td colspan=\"2\" align=\"left\"><input type=\"submit\" name=\"submit\" value=\"Registrieren\"></td></tr>\n";
echo "</form></table>\n";
}
}else {
$sql4 = "INSERT INTO `tabelle`
(`firmierung`,`passwort`,`anrede`,`titel`,`name`,`vorname`,`gebdat`,`strasse`,`hausnummer`,`plz`,`ort`,`telprivat`,`telgeschaeftlich`,`fax`,`mobil`,`email`,`homepage`,`provision`,`notizen`,`bank`,`kontonummer`,`blz`,`iban`,`bic`,`accountstatus`,`gewerbeerlaubnis`,`gewerbeanmeldung`,`fuehrungszeugnis`,`gewerbezentralregister`,`registrierungsdatum`)
VALUES ('".$firmierung."','".md5($passwort)."','".$anrede."','".$titel."','".$name."','".$vorname."','".$geburtsdatum."','".$strasse."','".$hausnummer."','".$plz."','".$ort."','".$telprivat."','".$telgeschaeftlich."','".$fax."','".$mobil."','".$email."','".$homepage."','".$provision."','".$notizen."','".$bank."','".$kontonummer."','".$blz."','".$iban."','".$bic."','".$accountstatus."','".$gewerbeerlaubnis."','".$gewerbeanmeldung."','".$fuehrungszeugnis."','".$gewerbezentralregister."','".$registrierungsdatum."')";
$res4 = mysql_query($sql4) or die(mysql_error());
echo "<br /><h3>Registrierung abgeschlossen</h3><p>Vielen Dank ".$anrede." ".$name.". Sie haben sich mit der E-Mail-Adresse <b>".$email."</b> für unseren Service registriert !<br /><br />Bitte überprüfen sie Ihr E-Mail Postfach.</p>";
}
}
?>
Wie bereits erwähnt, es läuft schon ganz prima. Im Prinzip will ich jetzt nur noch, dass der user nach einer Fehleingabe oder wenn er was vergessen hat, nicht das ganze Formular erneut ausfüllen muss und natürlich soll auch wieder 'escaped' und auf Fehler geprüft werden.
Bin gespannt auf eure Antworten und bedanke mich schonmal im Voraus !
Zuletzt bearbeitet: