Progge gerade ein User-Registrations-Script. Möchte gerne, dass mein Template alle fehlerhaften Feldnamen anzeigt, die ggf auftauchen.
Wie realisiere ich das. Den ansatz hab ich ja schon, aber mit dem Template klappts nicht so wie es soll. Der gepostete Code unten is meine jetzige Not-Lösung.
Habe im Template für die Ausgabe die Variable $user_exist_fehler verwendet.
Danke für Hilfe!!!!!
Wie realisiere ich das. Den ansatz hab ich ja schon, aber mit dem Template klappts nicht so wie es soll. Der gepostete Code unten is meine jetzige Not-Lösung.
Habe im Template für die Ausgabe die Variable $user_exist_fehler verwendet.
PHP-Code:
// template_inc.php
<?
function gettemplate($template,$endung="htm")
{
return str_replace("\"","\\\"",implode("",file("templates/".$template.".".$endung)));
}
function dooutput($template) {
echo $template;
}
?>
// registration_save.php
<?
include ("db_connect.php");
$benutzername = $HTTP_POST_VARS["benutzername"];
$passwort = $HTTP_POST_VARS["passwort"];
$email = $HTTP_POST_VARS["email"];
$confirm = $HTTP_POST_VARS["confirm"];
$vorname = $HTTP_POST_VARS["vorname"];
$nachname = $HTTP_POST_VARS["nachname"];
$strasse = $HTTP_POST_VARS["strasse"];
$wohnort = $HTTP_POST_VARS["wohnort"];
$plz = $HTTP_POST_VARS["plz"];
$icq = $HTTP_POST_VARS["icq"];
$mfchat = $HTTP_POST_VARS["mfchat"];
$hobbies = $HTTP_POST_VARS["hobbies"];
$gebtag = $HTTP_POST_VARS["gebtag"];
$gebmon = $HTTP_POST_VARS["gebmon"];
$gebjahr = $HTTP_POST_VARS["gebjahr"];
$status = "neu";
$geburtstag = "$gebtag.$gebmon.$gebjahr";
srand ((double)microtime()*1000000);
while(strlen($code) < 10)
{
$code .= rand(0,9);
}
$save = "INSERT INTO users (id, username, passwort, status, vorname,
nachname, strasse, plz, wohnort, email, icq, mfchat, hobbies, geburtstag, code) VALUES ('$id', '$benutzername', '$passwort', '$status', '$vorname',
'$nachname', '$strasse', '$plz', '$wohnort', '$email', '$icq', '$mfchat', '$hobbies', '$geburtstag', '$code') ";
$felder = array ("Benutzername","Passwort","E-Mail","Vorname",
"Nachname","Wohnort","Geburtsdatum","Postleitzahl","Passwort Wiederholung");
$eingabeok = array("^(([a-zA-Z0-9\.\_\-]){4})$", //Name mind. 4 Buchstaben und Zahlen
"^[.]{4}$", //Passwort mind. 4 Zeichen
"^([a-zA-Z0-9\.\_\-]+)@([a-zA-Z0-9\.\-]+\.[A-Za-z][A-Za-z]+)$", //Korrekte E-Mail Adresse
"^(([a-zA-Z\-]){3})$", //Vorname nur Buchstaben und Minus, min 3 Zeichen
"^(([a-zA-Z\-]){3})$", //Nachname nur Buchstaben und Minus, min 3 Zeichen
"^(([a-zA-Z\-\/\.]){3})$", //Wohnort nur Buchstaben und Minus, min 3 Zeichen
"([0-9])+(\.)+([0-9])+(\.)+([0-9]{4})$" //Geburtsdatum richtiges Format
);
$eingabefehler = array ("0","0","0","0","0","0","0","0","0");
$fehler = "0";
if ($benutzername=="" or !ereg($eingabeok[0],$benutzername))
{
$fehler = "1";
$eingabefehler[0] = "1";
}
if ($passwort=="" or !ereg($eingabeok[1],$passwort))
{
$fehler = "1";
$eingabefehler[1] = "1";
}
if ($email=="" or !ereg($eingabeok[2],$email))
{
$fehler = "1";
$eingabefehler[2] = "1";
}
if ($vorname=="" or !ereg($eingabeok[3],$vorname))
{
$fehler = "1";
$eingabefehler[3] = "1";
}
if ($nachname=="" or !ereg($eingabeok[4],$nachname))
{
$fehler = "1";
$eingabefehler[4] = "1";
}
if ($wohnort=="" or !ereg($eingabeok[5],$wohnort))
{
$fehler = "1";
$eingabefehler[5] = "1";
}
if ($geburtstag=="" or !ereg($eingabeok[6],$geburtstag))
{
$fehler = "1";
$eingabefehler[6] = "1";
}
if ($plz=="" or $plz < 1000 or $plz > 99999)
{
$fehler = "1";
$eingabefehler[7] = "1";
}
if ($confirm != $passwort)
{
$fehler = "1";
$eingabefehler[8] = "1";
}
$selectuser = "SELECT username FROM users WHERE username = '$benutzername'";
$query = mysql_query($selectuser);
$nr = mysql_num_rows($query);
$selectemail = "SELECT email FROM users WHERE email = '$email'";
$semail = mysql_query($selectemail);
$nre = mysql_num_rows($semail);
if($nr >= 1 or $nre >= 1 or $fehler == "1")
{
if ($fehler == "1")
{
for ($i=0; $i<8; $i++)
{
if ($eingabefehler[$i] == "1")
{
$user_exist_fehler = "Ein oder mehrere Felder sind fehlerhaft. Du hast wahrscheinlich ein Feld / Felder vergessen auszufüllen oder dabei falsche Zeichen verwendet.";
// Ansatz von mir
// $user_exist_fehler = $felder[$i] . "ungülitig. bla bla bla.";
// mein Template gibt dann aber nur ein fehlerhaftes Feld aus, obwohl es mehrere beim Test waren
}
}
}
if ($nr >= 1)
{
$fehler = 1;
$user_exist = "Der von dir gewählte Benutzername existiert bereits. Bitte wähle einen anderen.";
}
if ($nre >= 1)
{
$fehler = 1;
$user_exist2 = "Die von dir angegebene E-Mail-Adresse wird bereits von einem anderen User verwendet.";
}
include ("inc/template_inc.php");
eval("dooutput(\"".gettemplate("user_exist")."\");");
}
if ($fehler == "0")
{
$speichern = mysql_query($save);
}
$msg = "Hallo ".$benutzername;
$msg .= "\nVielen Dank für Deine Registrierung.\n";
$msg .= "Bitte aktiviere Deinen Account indem du auf den folgenden Link klickst:\n";
$msg .= "http://webdesign.morenow.de/kellersandberg/activate.php?user=".$benutzername."&code=".$code."\n";
$msg .= "Erst nach erfolgreicher Aktivierung kannst du den Account vollständig nutzen..";
$reguser = $benutzername;
$regmail = $email;
if ($speichern)
{
mail("$email","Aktivierungslink für [url]http://www.KellerSandberg.de[/url]","$msg\n","FROM: [email]webmaster@kellersandberg.de[/email]\n");
include ("inc/template_inc.php");
eval("dooutput(\"".gettemplate("registration_success")."\");");
}
?>
Danke für Hilfe!!!!!
Kommentar