Hi,
ich hab mal etwas geschrieben und dachte, mann könnte mir hier noch ein paar Tipps geben. Zumal das ganze nicht funktioniert....
Das Problem ist die Fehlerauswertung. Ich hab schon einiges probiert, allerdings hat nicht wirklich funktioniert.
Die Registration soll nur durchgeführt werden, wenn es voher keine Fehler gab. Irgendwo habe ich mal gelesen, weiß leider nicht mehr wo, dass man das Ganze in ein array packen kann, welches bei der auswertung etweder true oder false zurückgibt, je nachdem ob Fehler vorhanden oder nicht. Scheint aber nicht ganz so gut zu klappen.
Vielleicht hat ja jemand ein paar Tipps.
Gruß
ich hab mal etwas geschrieben und dachte, mann könnte mir hier noch ein paar Tipps geben. Zumal das ganze nicht funktioniert....
Code:
<?php
include 'db.php';
$fehler = array();
//Kontrolle ob $name korrekt ist
$query = mysql_query("SELECT name FROM users WHERE name LIKE ('".$_POST['name']."')");
if (mysql_error()) die ("MySQL-Error: " . mysql_error());
$namequery = mysql_num_rows($query);
mysql_freeresult($query);
if(strlen($_POST['name']) == 0)
{
$fehler[] = '<b><font color=red>Bitte geben Sie Ihren Namen ein.<br></font></b>';
}
elseif($namequery == true)
{
$fehler[] ='<b><font color=red>Ihr Name ist bereits vorhanden. Sie können nicht mehr teilnehmen.<br></font></b>';
}
else
{
echo "<b><font color=green>Ihr Name ist gültig.<br></font></b>";
}
//E-Mail-adresse kontrollieren
$query = mysql_query("SELECT email FROM users WHERE email LIKE ('".$_POST['email']."')");
if (mysql_errno()) die ("MySQL-Error: " . mysql_error());
$emailquery = mysql_num_rows($query);
mysql_freeresult($query);
if(!preg_match('/^[^@\s]+@([-a-z0-9]+\.)+[a-z]{2,}$/i',$_POST['email']))
{
$fehler[] = '<b><font color=red>Bitte geben Sie eine gültige E-Mail-Adresse ein.<br></font></b>';
}
elseif ($emailquery == true)
{
$fehler[] = '<b><font color=red>Ihr E-Mail ist bereits vorhanden. Sie können nicht mehr am Spiel teilnehmen.<br></font></b>';
}
else
{
echo "<b><font color=green>Ihre E-Mail ist gültig.<br></font></b>";
}
//Passwoerter kontrollieren
if(strlen($_POST['pass']) != 0){
if(strlen($_POST['pass2']) != 0){
if($_POST['pass'] == $_POST['pass2']){
echo "<b><font color=green>Die Passwörter stimmen überein.<br></font></b>";
}
}
}
else
{
$fehler[]= '<b><font color=red>Bitte überprüfen Sie ihre Passwörter.<br></font></b>';
}
//registrierfunktion
echo $fehler;
if($fehler == false)
{
$eintrag = "INSERT INTO users (name, email, pass) VALUES ('" . $_POST['name'] . "', '" . $_POST['email'] . "', '" . $_POST['pass'] . "')";
$eintragen = mysql_query($eintrag);
}
if(isset($eintragen))
{
echo "<b><font color=red>Die Registrierung konnte nicht durchgeführt werden.</font></b>";
}
else
{
echo "<b><font color=green>Die Registrierung konnte durchgeführt werden.</font></b>";
}
include('reg.html');
?>
Die Registration soll nur durchgeführt werden, wenn es voher keine Fehler gab. Irgendwo habe ich mal gelesen, weiß leider nicht mehr wo, dass man das Ganze in ein array packen kann, welches bei der auswertung etweder true oder false zurückgibt, je nachdem ob Fehler vorhanden oder nicht. Scheint aber nicht ganz so gut zu klappen.
Vielleicht hat ja jemand ein paar Tipps.
Gruß