Finde den Fehler nicht


  • Ballof
  • 848 Aufrufe 4 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Finde den Fehler nicht

    Hallo, liebe Forenleser!

    Ich arbeite im Moment an einer eigenen Website und möchte ein Registrierungsscript schreiben. So weit so gut, allerdings ist ein Fehler drin, den ich leider nicht finde.

    Code:
    <?php empty($_SERVER['QUERY_STRING']) ? $self = $_SERVER['PHP_SELF'] : $self = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];mysql_connect("localhost",

    "name_user", "passwort") or die('no connect<br:'.mysql_error());;mysql_select_db("name_user") or die('no

    table:<br>'.mysql_error());if(!isset($_POST['send'])){ $aus = '<form action="'.$self.'" method="post">'; $aus.= '<table>'; $aus.=

    '<tr><td>Benutzername</td><td><input type="text" name="reg_nicname" value="'.$_POST['reg_name'].'"></td></tr>'; $aus.= '<tr><td>Name</td><td><input

    type="text" name="reg_name"></td></tr>'; $aus.= '<tr><td>Nachname</td><td><input type="text "name="reg_lastname"></td></tr>'; $aus.=

    '<tr><td>Geburtsdatum(z.B. 24.01.1965)</td><td><input type="text" name="reg_bday"></td></tr>'; $aus.= '<tr><td>E-Mail Adresse</td><td><input type="text"

    name="reg_mail"></td></tr>'; $aus.= '<tr><td>Passwort</td><td><input type="password" name="reg_pass"></td></tr>'; $aus.= '<tr><td>Passwort

    wiederholen</td><td><input type="password" name="reg_pass_wdh"></td></tr>'; $aus.= '<tr><td><input type="checkbox" name="reg_agb" value="reg_agb">Ich

    habe die AGB von inetseite.de gelesen und bin mit ihnen einverstanden.</td><td></td></tr>'; $aus.= '</table>'; $aus.= '<input type="submit"

    value="best&auml;tigen" name="send">'; $aus.= '</form>';}else{ $aus = '<form action="'.$self.'" method="post">'; $aus.= '<table>';

    if(empty($_POST['reg_nicname'])){ $aus.= '<tr><td><span style="color:red;">Benutzername fehlt</span></td><td></td></tr>'; $error = true;}

    else{ $sql = "SELECT `Nickname` FROM

    `name_user` WHERE `Nickname` = '".$_POST['reg_nicname']."'";

    $result = mysql_query($sql); if($row = mysql_fetch_assoc($result)){ $aus.= '<tr><td><span

    style="color:red;">Benutzername existiert bereits!</span></td><td></td></tr>'; $error = true;}; } $aus.= '<tr><td>Benutzername</td><td><input

    type="text" name="reg_nicname" value="'.$_POST['reg_nicname'].'"></td></tr>'; if(empty($_POST['reg_name'])){ $aus.= '<tr><td><span

    style="color:red;">Vorname fehlt</span></td><td></td></tr>'; $error = true;} $aus.= '<tr><td>Name</td><td><input type="text" name="reg_name"

    value="'.$_POST['reg_name'].'"></td></tr>'; if(empty($_POST['reg_lastname'])){ $aus.= '<tr><td><span style="color:red;">Nachnname

    fehlt</span></td><td></td></tr>'; $error = true;} $aus.= '<tr><td>Nachname</td><td><input type="text "name="reg_lastname"

    value="'.$_POST['reg_lastname'].'"></td></tr>'; $aus.= '<tr><td><span style="color:red;">Geburtsdatum fehlt</span></td><td></td></tr>'; $error = true;}

    else{ $gb = explode('.', $_POST['reg_bday']); if(!checkdate($gb[1],$gb[0],$gb[2]) || count($gb) !== 3){

    $aus.='<tr><td><span style="color:red;">Bitte ein g&uuml;ltiges Datum angeben!</span></td><td></td></tr>';

    $error = true; } } $aus.= '<tr><td>Geburtsdatum(z.B. 24.01.1965)</td><td><input type="text" name="reg_bday"

    value="'.$_POST['reg_bday'].'"></td></tr>'; if(empty($_POST['reg_mail'])){ $aus.= '<tr><td><span style="color:red;">E-Mail

    fehlt</span></td><td></td></tr>'; $error = true;} elseif(!ereg("^.+@.+\\..+$", $_POST['reg_mail'])) { $aus.=

    '<tr><td><span style="color:red;">Bitte eine g&uuml;tige Emailadresse angeben!</span></td><td></td></tr>'; $error = true; }

    else{ $sql = "SELECT `E-Mail` FROM

    `name_user` WHERE `E-Mail` =

    '".$_POST['reg_mail']."'"; $result = mysql_query($sql); if($row = mysql_fetch_assoc($result)){ $aus.=

    '<tr><td><span style="color:red;">Diese Emailadresse wird bereits verwendet!</span></td><td></td></tr>'; $error = true;}; } $aus.=

    '<tr><td>E-Mail Adresse</td><td><input type="text" name="reg_mail" value="'.$_POST['reg_mail'].'"></td></tr>'; if(empty($_POST['reg_pass']) ||

    empty($_POST['reg_pass_wdh'])){ $aus.= '<tr><td><span style="color:red;">Passwort fehlt</span></td><td></td></tr>'; $error = true;}

    elseif($_POST['reg_pass'] !== $_POST['reg_pass_wdh']){ $aus.= '<tr><td><span style="color:red;">Passw&ouml;rter stimmen nicht

    &uuml;berein!</span></td><td></td></tr>'; $error = true; } $aus.= '<tr><td>Passwort</td><td><input type="password"

    name="reg_pass" value="'.$_POST['reg_pass'].'"></td></tr>'; $aus.= '<tr><td>Passwort wiederholen</td><td><input type="password" name="reg_pass_wdh"

    value="'.$_POST['reg_pass_wdh'].'"></td></tr>'; if(empty($_POST['reg_tel'])) if(empty($_POST['reg_agb'])){ $aus.=

    '<tr><td><span style="color:red;">AGB wurden nicht best&auml;tigz</span></td><td></td></tr>'; $error = true;} $aus.= '<tr><td><input type="checkbox"

    name="reg_agb" value="reg_agb">Ich habe die AGB von inetseite.de gelesen und bin mit ihnen einverstanden.</td><td></td></tr>'; $aus.= '</table>';

    $aus.= '<input type="submit" value="best&auml;tigen" name="send">'; $aus.= '</form>'; if(!$error){ mysql_connect("localhost",

    "name_user", "passwort") or die('noconnect<br:'.mysql_error());; mysql_select_db("name_user") or die('no table:<br>'.mysql_error());

    $aus = 'erfolgreich registriert!'; $timestamp = mktime(0,0,0,$gb[1],$gb[0],$gb[2]); $sql = "INSERT INTO

    `name_user` SET `Nickname` = '".$_POST['reg_nicname']."' ,

    `Kennwort` = '".md5($_POST['reg_pass'])."' , `Geburtsdatum` = '".$timestamp."' ,

    `E-Mail` = '".$_POST['reg_mail']."' , `Nachname` = '".$_POST['reg_lastname']."' ,

    `Vorname` = '".$_POST['reg_name']."' , `Aktivirung` = '".md5($_POST['reg_nicname'])."'"; $result =

    mysql_query($sql) or die('could not register user:<br>'.mysql_error()); $empfaenger = $_POST['reg_mail']; $user =

    $_POST['reg_nicname']; $upas = $_POST['reg_pass']; $sender = 'inetseite.de'; $sendermail = 'noreply@inetseite.de';

    $betreff = 'Registrierung bei inetseite.de'; $text = "Lieber $user,\n\r Vielen Dank fuer die Registrierung auf

    inetseite.de\n\r \n\r Ihre persoenlichen Zugansdaten:\n\r \n\r \n\r -------------------------------\n\r

    Benutzername: $user \n\r Passwort: $upas \n\r -------------------------------\n\r \n\r

    Der Zeit ist ihr Benutzerkonto inaktiv. Um es zu aktivieren folge bitte diesem link:\n\r

    http://name.bplaced.de/Hauptseite/register.php?a=".md5($user)." \n\r Wenn du dein Passwort vergessen solltest, findest

    du einen Link auf unserer Seite, mit dem du es zuruecksetzen kannst.\n\r \n\r Mit freundlichem Gruß,\n\r

    inetseite.de"; mail($empfaenger,$betreff,$text,$sendermail); };}if(isset($_GET['a'])){ $sql = "UPDATE

    `name_user` SET `Status` = '1' WHERE `Aktivirung` =

    '".$_GET['a']."'"; $result = mysql_query($sql) or die('no activation:<br>'.mysql_error()); $aus = "Konto erfolgreich aktiviert!";}print $aus;?>


    Fehlermeldung:
    Parse error: syntax error, unexpected T_ELSE in /link.php on line 1


    Außerdem finde ich nirgens was dazu, wie man einfügt, dass jemand anklicken kann, ob männlich oder weiblich und dann in der Bestätigungsmail mit "liebe" oder "lieber" angesprochen wird.
    Desweiteren freue ich mich über Leute, die mit mir zusammen daran weiter arbeiten möchten und mir somit helfen können. ^^ Einfach mal melden.

    Ich bedanke mich jetzt schon bei jedem, der sich die Mühe macht, das zu lesen und mir helfen kann.

    Viele liebe Grüße,

    Ballof

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Ballof ()

  • Hi und OMG Oo
    Gewöhne dir doch mal bitte an deinen Code sauber aufzuschreiben. Das sieht ja aus, wie hinge***ssen OO"
    Aber zum Glück muss man nur aus Zeile 1 schlau werden.

    Quellcode

    1. empty($_SERVER['QUERY_STRING']) ? $self = $_SERVER['PHP_SELF'] : $self = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];

    Also du willst, wenn $_SERVER['QUERY_STRING'] leer ist $self mit $_SERVER['PHP_SELF'] belegen und sonst auch... Fällt dir etwas auf? ^^
    Außerdem ist das die Syntaxvorschrift für if-else, wenn die wenn und sonst-Fälle etwas zurück geben sollen. Das brauchst du aber gar nicht.
    Hier, so würde ich dein Code schreiben:

    Quellcode

    1. $self = $_SERVER['PHP_SELF'];
    2. if($_SERVER['QUERY_STRING']) $self.= '?'.$_SERVER['QUERY_STRING'];


    Aber wenn du es unbedingt so aufwendig haben willst, dann musst du auch die richtige if-else Syntaxvorschrift nehmen.

    Quellcode

    1. ((empty($_SERVER['QUERY_STRING'])) ? $self = $_SERVER['PHP_SELF'] : $self = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']);

    Aber wie gesagt, dafür wird dich jeder Auslachen :D

    Okay, es gibt eine Variante, da könntest du deine Variante sinnvoll einsetzen:

    Quellcode

    1. $self = $_SERVER['PHP_SELF'].((!empty($_SERVER['QUERY_STRING'])) ? '?'.$_SERVER['QUERY_STRING']:'');


    Gruß
    Broken Sword

    P.S.
    Habe mich anstatt empty für if() entschieden, weil du empty gar nicht brauchst. Siehe hier: blueshoes.org/en/developer/php_cheat_sheet/
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Broken Sword ()

  • Hallo und danke erst mal ^^

    Hi und OMG Oo
    Gewöhne dir doch mal bitte an deinen Code sauber aufzuschreiben. Das sieht ja aus, wie hinge***ssen OO"


    Wirst es mir zwar net glauben, aber es war alles toll aufgeschrieben. Danken wir an dieser Stelle mal dem Windows Editor (den werd ich sicher nicht mehr benutzen ^^)

    So, jetzt zu meinem Problem. Ich habe deine Codes beide versucht, allerdings kommt dann immer noch ne Fehlermeldung.

    Beim zweiten Code:
    Parse error: syntax error, unexpected T_ELSE in link.php on line 3


    Beim ersten Code dasselbe, allerdings in Line 2 ...

    Liebe Grüße,

    Ballof


    **EDIT**

    Immer noch, auch mit dem dritten,

    Parse error: syntax error, unexpected T_ELSE in /users/ballof/www/Hauptseite/registerbroken.php on line 2
    ... man, das regt mich auf

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Ballof ()

  • Habe extra für dich gerade alle 3 Varianten ausprobiert und es kam keine Fehlermeldung ;) Meine Vermutung ist, du hast das alte nicht mit meinem ersetzt, sondern es einfach davor eingefügt.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.