Registrierformular: Fehler bei if Syntax ???

hi, ich bins mal wieder…
aslo ich wollte ien Registrierungsformular machen, jedoch bekommt man als fehler das zurück:

[B]Parse error[/B]: syntax error, unexpected T_IF in [B]/usr/export/www/vhosts/funnetwork/hosting/wsef/www.party-mg.de/inc/reg/insert.php[/B] on line [B]21 [/B]hier der php code:

[php]

<?php $name = $_POST["name"]; $vorname = $_POST["vorname"]; $user_name = $_POST["user_name"]; $user_pass = $_POST["user_pass"]; $user_pass2 = $_POST["user_pass2"]; $user_mail = $_POST["user_mail"]; $user_mail2 = $_POST["user_mail2"]; $dd = $_POST["dd"]; $mm = $_POST["mm"]; $yyyy = $_POST["yyyy"]; $plz = $_POST["plz"]; $since = time(); $activ = "0" if($user_mail == "$user_mail2" && $user_pass == "$user_pass2") { if($user_name == "" OR $user_mail == "" OR $user_pass == "" OR $name == "" OR $vorname == "" OR $plz == "") { echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. Zurück"; exit; } else { $user_pass = md5($user_pass); $result = mysql_query("SELECT id FROM 'user' WHERE 'user_name' = '$user_name'"); $menge = mysql_num_rows($result); if($menge == 0) { $result = mysql_query("SELECT id FROM 'user' WHERE 'user_mail' = '$user_mail'"); $menge = mysql_num_rows($result); if($menge == 0) { $eintrag = "INSERT INTO user (user_name, user_pass, user_mail, dd, mm, yyyy, name, vorname, plz, single, what, motto, movie, music, book, club, bar_cafe, about, like, not_like, wish, since, lastlog, activ) VALUES ('$user_name', '$user_pass', '$user_mail', '$dd', '$mm', '$yyyy', '$name', '$vorname', '$plz', '$single', '$what', '$motto', '$movie', '$music', '$book', '$club', '$bar_cafe', '$about', '$like', '$not_like', '$wish', '$since', '$lastlog', '$activ')"; $eintragen = mysql_query($eintrag); if($eintragen == true) { echo "Dein Account wurde erstellt. Du bekommt jetzt eine Email mit einem Aktivirungslink. Login"; $inhalt = "Dein Account wurde erfolgreich erstellt. Viel Spass bei LINK!
Hier der Aktiierungslink: http://index.php?class=login&section=activate&id=$user_name!"; mail('$user_mail',www.xy.de,$inhalt,Account wurde aktiviert!); } else { echo "Fehler beim Speichern. Versuche es später nocheinmal oder kotaktiere den Webmaster. Zurück"; } } else { echo "Diese Emailadresse wurde schon verwendet. Zurück"; } } else { echo "Benutzername schon vorhanden. Zurück"; } } else { echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. Zurück"; exit; } } ?>

[/php]danke für eure hilfe!

du hast ein Fehler in deiner IF Syntax such am besten ob du ein „{“ oder „}“ übersehen.
Tipp: Sortier besser die If’s ist zwar geschmackssache aber ich würde das so machen (Keine Frage jeder macht es wie er will)
[PHP]
if ($Bedingung == true)
{
echo $Befehle;
}
[/PHP]
Ist aber nur nen Tipp :wink:

greez web_spider :smiley:

ne, find ich nicht, und sortiert hab ichs ja, ich finds eigentlich ziemlich überischtlich, habs aber jetzt mal in eine if abfrage gepackt^^

[php]

<?php $name = $_POST["name"]; $vorname = $_POST["vorname"]; $user_name = $_POST["user_name"]; $user_pass = $_POST["user_pass"]; $user_pass2 = $_POST["user_pass2"]; $user_mail = $_POST["user_mail"]; $user_mail2 = $_POST["user_mail2"]; $dd = $_POST["dd"]; $mm = $_POST["mm"]; $yyyy = $_POST["yyyy"]; $plz = $_POST["plz"]; $since = time(); $activ = "0" if($user_mail != "$user_mail2" OR $user_pass != "$user_pass2" OR $user_name == "" OR $user_mail == "" OR $user_pass == "" OR $name == "" OR $vorname == "" OR $plz == "") { echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. Zurück"; exit; } else { $user_pass = md5($user_pass); $result = mysql_query("SELECT id FROM 'user' WHERE 'user_name' = '$user_name'"); $menge = mysql_num_rows($result); if($menge == 0) { $result = mysql_query("SELECT id FROM 'user' WHERE 'user_mail' = '$user_mail'"); $menge = mysql_num_rows($result); if($menge == 0) { $eintrag = "INSERT INTO user (user_name, user_pass, user_mail, dd, mm, yyyy, name, vorname, plz, single, what, motto, movie, music, book, club, bar_cafe, about, like, not_like, wish, since, lastlog, activ) VALUES ('$user_name', '$user_pass', '$user_mail', '$dd', '$mm', '$yyyy', '$name', '$vorname', '$plz', '$single', '$what', '$motto', '$movie', '$music', '$book', '$club', '$bar_cafe', '$about', '$like', '$not_like', '$wish', '$since', '$lastlog', '$activ')"; $eintragen = mysql_query($eintrag); if($eintragen == true) { echo "Dein Account wurde erstellt. Du bekommt jetzt eine Email mit einem Aktivirungslink. Login"; $inhalt = "Dein Account wurde erfolgreich erstellt. Viel Spass bei LINK!
Hier der Aktiierungslink: http://index.php?class=login&section=activate&id=$user_name!"; mail('$user_mail',www.url.de,$inhalt,Account wurde aktiviert!); } else { echo "Fehler beim Speichern. Versuche es später nocheinmal oder kotaktiere den Webmaster. Zurück"; } } else { echo "Diese Emailadresse wurde schon verwendet. Zurück"; } } else { echo "Benutzername schon vorhanden. Zurück"; } } ?>

[/php]

das überprüft man dann aber mit:

Nils aka XraYSoLo

also wie schon oft liegts nicht daran, was einem als fehler zurückgegeben wird, sondern es fehlte nur ein simikolon… aber hab jetzt nen neuen fehler und zwar:

[code]
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/wsef/www.party-mg.de/inc/reg/insert.php on line 29

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/export/www/vhosts/funnetwork/hosting/wsef/www.party-mg.de/inc/reg/insert.php on line 33
Fehler beim Speichern. Versuche es später nocheinmal oder kotaktiere den Webmaster. Zurück
[/code]hier mla der geänderte code:
[php]

<?php $name = $_POST["name"]; $vorname = $_POST["vorname"]; $user_name = $_POST["user_name"]; $user_pass = $_POST["user_pass"]; $user_pass2 = $_POST["user_pass2"]; $user_mail = $_POST["user_mail"]; $user_mail2 = $_POST["user_mail2"]; $dd = $_POST["dd"]; $mm = $_POST["mm"]; $yyyy = $_POST["yyyy"]; $plz = $_POST["plz"]; $since = time(); $activ = "0"; if($user_mail != "$user_mail2" OR $user_pass != "$user_pass2" OR $user_name == "" OR $user_mail == "" OR $user_pass == "" OR $name == "" OR $vorname == "" OR $plz == "") { echo "Eingabefehler. Bitte alle Felder korekt ausfüllen. Zurück"; exit; } else { $result = mysql_query("SELECT 'user_id' FROM 'user' WHERE 'user_name' = '$user_name'"); $menge = mysql_num_rows($result); if($menge == 0) { $result2 = mysql_query("SELECT 'user_id' FROM 'user' WHERE 'user_mail' = '$user_mail'"); $menge2 = mysql_num_rows($result2); if($menge2 == 0) { $user_pass = md5($user_pass); $eintrag = "INSERT INTO user (user_name, user_pass, user_mail, dd, mm, yyyy, name, vorname, plz, single, what, motto, movie, music, book, club, bar_cafe, about, like, not_like, wish, since, lastlog, activ) VALUES ('$user_name', '$user_pass', '$user_mail', '$dd', '$mm', '$yyyy', '$name', '$vorname', '$plz', '$single', '$what', '$motto', '$movie', '$music', '$book', '$club', '$bar_cafe', '$about', '$like', '$not_like', '$wish', '$since', '$lastlog', '$activ')"; $eintragen = mysql_query($eintrag); if($eintragen == true) { echo "Dein Account wurde erstellt. Du bekommt jetzt eine Email mit einem Aktivirungslink. Login"; $inhalt = "Dein Account wurde erfolgreich erstellt. Viel Spass bei LINK! Hier der Aktiierungslink: http://index.php?class=login&section=activate&id=$user_name!"; mail('$user_mail','http://www.google.de','$inhalt','Account wurde aktiviert!'); } else { echo "Fehler beim Speichern. Versuche es später nocheinmal oder kotaktiere den Webmaster. Zurück"; } } else { echo "Diese Emailadresse wurde schon verwendet. Zurück"; } } else { echo "Benutzername schon vorhanden. Zurück"; } } ?>

[/php]

Tabellen- und Spaltennamen nich mit ’ sondern mit `

also zu fregen ob mysql_num_rows == 0 ist ist schwachsinn
schreib einfach
[php]if(mysql_num_rows($qry)){ // befehl }[/php]

und dan zu fragen ob mysql_query == true ist ^^ da kannst das genau so machen
[php]if(mysql_query($sql)){ // befehl }[/php]

weiß nicht ob dir das jetzt geholfen hat aber es macht deinen code auf jedenfall schneller :wink:

MFG