Hallo,
ich habe ein Formular und eine Funktion, die die eingegebenen Daten auf vollständigkeit überprüft.
Doch es tut nicht so, wie ich will
Hier mal der Hauptcode:
Und hier die Funktion proove.fun.php
Funktion proove gibt den $error-wert zurück und wenn der 0 ist, soll weitergefahren werden, ansonsten soll abgebrochen werden. Ich finde den Fehler nicht, hoffe ihr könnt das besser 
Jetzt ist es so, dass er wenn alles richtig ist die Meldung "ok" ausgibt aber eben auch wenns falsch ist. Muss ein simpler Fehler sein, aber ich find ihn nicht.
ich habe ein Formular und eine Funktion, die die eingegebenen Daten auf vollständigkeit überprüft.
Doch es tut nicht so, wie ich will
Hier mal der Hauptcode:
PHP:
<?
include ("funktionen/proove.fun.php");
include ("funktionen/datum.fun.php");
include ("funktionen/email.fun.php");
@mysql_connect("localhost","root","") or die("Verbindung zu SQL gescheitert...");
@mysql_select_db("test noten") or die("Verbindung zur Datenbank gescheitert...");
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<font sans-serif="" face="Arial,"><font size="2">
</font></font>
<p>
<table style="border-collapse: collapse;" border="0" bordercolor="#111111" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>Username:</td>
<td>
<input name="username" size="20" type="text"><br>
</td>
</tr>
<tr>
<td>E-:</td>
<td>
<input name="email" size="20" type="text"><br>
</td>
</tr>
<tr>
<td>Passwort:</td>
<td>
<input name="passwort" size="20" type="password"><br>
</td>
</tr>
<tr>
<td>Pw wiederholen:</td>
<td>
<input name="passwortwiederholen" size="20" type="password">
</td>
</tr>
</tbody>
</table>
<font sans-serif="" face="Arial,"><font size="2"><br>
<input value="Registrieren" style="color: rgb(0, 0, 0); background-color: rgb(187, 187, 187);" type="submit">
<br>
<br>
<br>
</font></font></p>
<p><font sans-serif="" face="Arial,"><font size="2"><font color="#ffffff" face="Arial"><span style="background-color: rgb(0, 0, 255);">
<font size="4">Wichtig: </font>
</span></font></font></font></p>
<ul>
<font sans-serif="" face="Arial,"><font size="2"> <li><font face="Arial">Passwort muss mindestens 7 Zeichen lang sein</font></li>
<li><font face="Arial">E-Mail Adresse muss '@' enthalten und mindestens 5
Zeichen lang sein</font></li>
<li><font face="Arial">Username muss mindestens 5 Zeichen lang sein</font></li>
</font></font>
</ul>
</form>
<?
$error;
if (isset($_POST['username']))
{
proove($_POST['username'], $_POST['email'], $_POST['passwort'], $_POST['passwortwiederholen'], $error);
}
if ($error == 0 && isset($_POST['username']))
{
$pwvers = md5($_POST['passwort']);
$aktiviert = 0; //in table, wenn aktiviert 1, sonst 0
$datum = date("j.n.Y");
$aktivierungscode = rand(1000000, 9999999);
email($_POST['username'], $_POST['email'], $aktivierungscode);
echo '<script language = "JavaScript">
alert ("ok");
</script>';
}
?>
Und hier die Funktion proove.fun.php
PHP:
<?php
function proove()
{
$error=0;
$checkuser = "Select UserName FROM users WHERE UserName = '".$_POST['username']."'";
$userresult = mysql_query($checkuser) OR die(mysql_error());
$checkemail = "Select UserMail FROM users WHERE UserMail = '".$_POST['email']."'";
$emailresult = mysql_query($checkemail) OR die(mysql_error());
if (mysql_num_rows($userresult) != 0)
{echo "Dieser Username ist schon besetzt, sorry!!!";
$error=1;
}
if (mysql_num_rows($emailresult) != 0)
{echo "Diese Email-Adresse wurde schon registriert. Pro Email-Adresse ist nur eine Registrierung möglich.";
$error=1;
}
if ((strlen($_POST['username']) < 5) && ($_POST['username'] != ""))
{echo '<ul><li><font face="Arial">Username zu kurz.</font></li>
</ul>';
$error=1;
}
if ((strlen($_POST['email']) <5) && ($_POST['email'] != ""))
{echo '<ul><li><font face="Arial">Email ungültig.</font></li>
</ul>';
$error=1;
}
if((strlen($_POST['passwort']) <7) && ($_POST['passwort'] != ""))
{echo '<ul><li><font face="Arial">Passwort zu kurz.</font></li>
</ul>';
$error=1;
}
if($_POST['passwort'] != $_POST['passwortwiederholen'])
{echo '<ul><li><font face="Arial">Die beiden Passwörter stimmen nicht überein.</font></li>
</ul>';
$error=1;
}
if(($_POST['username'] == "") || ($_POST['email'] == "") || ($_POST['passwort'] == "") || ($_POST['passwortwiederholen'] == ""))
{echo '<ul><li><font face="Arial">Es sind nicht alle Felder ausgefüllt.</font></li>
</ul>';
$error=1;
}
echo "$error in proove";
return ($error);
}//funktion ende
?>
Jetzt ist es so, dass er wenn alles richtig ist die Meldung "ok" ausgibt aber eben auch wenns falsch ist. Muss ein simpler Fehler sein, aber ich find ihn nicht.