PHP zeigt Parse Error bei ?>

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP zeigt Parse Error bei ?>

    Hi,
    ich habe ein Registrationsscript geschrieben. Nur bei Ausführung
    zeigt PHP einen Parse Error bei
    PHP-Code:
    ?> 
    Hier ist der Script:
    PHP-Code:
    session_start ();
    // Variablen
    $username $_POST["username"];
    $fistname $_POST["firstname"];
    $lastname $_POST["lastname"];
    $email $_POST["email"];
    $address $_POST["address"];
    $postcode $_POST["postcode"];
    $city $_POST["city"];
    $password md5($_POST["password"]);
    $seckey $_POST["seckey"];
    $secretquestion $_POST["secretquestion"];
    $secretansware $_POST["secretansware"];

    // Variablen überprüfen
    // Auf leere Variablen überprüfen
    if ($username "") { header ("location: 
    ../members/register.php?missing"
    );};
    if (
    $fistname "") { header ("location: 
    ../members/register.php?missing"
    );};
    if (
    $lastname "") { header ("location: 
    ../members/register.php?missing"
    );};
    if (
    $email "") { header ("location: 
    ../members/register.php?missing"
    );};
    if (
    $password "") { header ("location: 
    ../members/register.php?missing"
    );};
    if (
    $seckey "") { header ("location: 
    ../members/register.php?missing"
    );};
    if (
    $secretquestion "") { header ("location: 
    ../members/register.php?missing"
    );};
    if (
    $secretansware "") { header ("location: 
    ../members/register.php?missing"
    );};

    // Auf felerhafte Variablen überprüfen
    if (!preg_match("=^[a-zäöüß]+$=i"$username)) {
    header ("location: ../members/register.php?invaliduser");
    };
    if (!
    preg_match("/^[A-z0-9][\w.-]*@[A-z0-9][\w\-\.]+\.[A-z0-9]{2,6}$/
    "
    $email)) {
    header ("location: ../members/register.php?invalidemail");
    };

    // In die DB eintragen
    //$sql = "INSERT INTO demo1
    //    (username, firstname, lastname, email, address, postcode, city,
     
    passwordseckeysecretquestionsecretanswareregisterdate)
    //VALUES
    //    ('$username', '$fistname', '$lastname', '$email', '$address', 
    '$postcode''$city''$password''$seckey''$secretquestion'
    '$secretansware'NOW())";
    //
    $result = mysql_query($sql) OR die(mysql_error());
    //header ("
    location: ../members/register.php?register");
    //};
    ?> 
    Hier der Error dazu:

    Code:
    Parse error: parse error, unexpected $ in /var/www/vhosts/ismine.de/subdomains/micronax
    /httpdocs/scripts/update.php on line 48
    Woran liegt das?

    Micronax

  • #2
    Was ist denn DAS?!

    PHP-Code:
    if (!preg_match("=^[a-zäöüß]+$=i"$username)) {
    header ("location: ../members/register.php?invaliduser");
    }; 
    Das letzte Semikolon muss weg....

    Korrigiert mich bitte falls ich ..mal wieder..falsch liege.


    Und hier, das ist vom Syntax her zwar in ordnung (sofern du Variablen zuweisen willst...), aber anders ist es viel übersichtlicher:

    PHP-Code:
    if ($username "") { header ("location: 
    ../members/register.php?missing"
    );};

    // Lieber so, ist übersichtlicher, außerdem musst du
    // zwei = verwenden, wenn du vergleichen willst!

    if ($username == "")
       
    header ("Location: ../members/register.php?invaliduser");

    # ... etc ... 

    Sorry wenn ich das jetzt so "hart" ausdrück, aber der Code.. ist mist... würde mich wundern wenn der gehen würde...


    PHP-Code:
    // In die DB eintragen
    //$sql = "INSERT INTO demo1
    //    (username, firstname, lastname, email, address, postcode, city,
     
    passwordseckeysecretquestionsecretanswareregisterdate)
    //VALUES
    //    ('$username', '$fistname', '$lastname', '$email', '$address', 
    '$postcode''$city''$password''$seckey''$secretquestion'
    '$secretansware'NOW())";
    //
    $result = mysql_query($sql) OR die(mysql_error());
    //header ("
    location: ../members/register.php?register");
    //}; 
    Wie soll das gehen?

    Theoretisch steht da:

    PHP-Code:
     passwordseckeysecretquestionsecretanswareregisterdate)

    '$postcode''$city''$password''$seckey''$secretquestion'
    '$secretansware'NOW())"; 
    Zuletzt geändert von fox34; 08.03.2006, 19:58.

    Kommentar


    • #3
      Das liegt meißtens an nicht geschlossenen Schleifen bzw. Klammern bzw an nicht geöffneten.

      Schau dir mal den Teil deines Quelltextes an:


      PHP-Code:
      // In die DB eintragen
      //$sql = "INSERT INTO demo1
      //    (username, firstname, lastname, email, address, postcode, city,
       
      passwordseckeysecretquestionsecretanswareregisterdate)
      //VALUES
      //    ('$username', '$fistname', '$lastname', '$email', '$address', 
      '$postcode''$city''$password''$seckey''$secretquestion'
      '$secretansware'NOW())";
      //
      $result = mysql_query($sql) OR die(mysql_error());
      //header ("
      location: ../members/register.php?register");
      //};
      ?> 
      Da zeigt sogar schon die interne Farbe an, dass du da was falschegamcht hast.
      Da fehlen einige Kommentar Zeichen.

      So denk mal würd das eher gehen:
      PHP-Code:

      /* In die DB eintragen
      $sql = "INSERT INTO demo1
          (username, firstname, lastname, email, address, postcode, city,
       password, seckey, secretquestion, secretansware, registerdate)
      VALUES
          ('$username', '$fistname', '$lastname', '$email', '$address', 
      '$postcode', '$city', '$password', '$seckey', '$secretquestion', 
      '$secretansware', NOW())";
      $result = mysql_query($sql) OR die(mysql_error());
      header ("location: ../members/register.php?register");
      }; */
      ?> 

      Kommentar


      • #4
        ok da war wohl jemand schneller, naja ok.

        Kommentar


        • #5
          Den teil habe ich auskommentiert, damit beim Test nicht immer was in die Db geschriebn wird. Und der Rest kommt von Foruminternen Zeilenumbruch

          Kommentar


          • #6
            Das letzte Semikolon muss weg....
            Ähm? welches?

            Micronax

            Kommentar


            • #7
              und ich würde (ich spreche von eigenen erfahrungen..) lieber den Umbruch in euren Beiträgen ändern.. sonst werden die Mods böse =)

              Micronax

              Kommentar


              • #8
                Wieviele "letzte" stehen denn da?

                PHP-Code:
                if (!preg_match("=^[a-zäöüß]+$=i"$username)) {
                header ("location: ../members/register.php?invaliduser");
                }; 

                Das Script hast du nicht geschrieben, oder?

                Schau dir lieber erstmal die Grundlagen an, weil, sorry, aber du hast doch keine ahnung von PHP? *nichbösmein*

                http://tut.php-q.net

                Kommentar


                • #9
                  OffTopic:
                  parse error...
                  hast du keinen editor, der dir den code farblich unterlegt?

                  Kommentar


                  • #10
                    Dreamweaver!

                    Und ich wiederhole mich nur ungern der Originalcode ist OHNE Auskommentierungen. ich habe es nur für Testzwekce auskommentiert. Und sowas:
                    PHP-Code:
                    //    (username, firstname, lastname, email, address, postcode, city,
                     
                    passwordseckeysecretquestionsecretanswareregisterdate
                    kommt vom umbruch hier im Forum.

                    Micronax

                    Kommentar


                    • #11
                      Egal ob du es nur zu testzwecken auskommentiert hast oder nicht, das kann nicht funzen, weil du da ... wie soll ich sagen, NIX machst. Du definierst keine Variable o.ä., im Code steht einfach

                      Code:
                      password, seckey, secretquestion, secretansware, registerdate)

                      Damit kann PHP halt nunmal nix anfangen.

                      Kommentar


                      • #12
                        NEIN!

                        PHP-Code:
                        // In die DB eintragen
                        $sql "INSERT INTO demo1
                            (username, firstname, lastname, email, address, postcode, city, 
                        password, seckey, secretquestion, secretansware, registerdate)
                        VALUES
                            ('
                        $username', '$fistname', '$lastname', '$email', '$address', 
                        '
                        $postcode', '$city', '$password', '$seckey', '$secretquestion', 
                        '
                        $secretansware', NOW())";
                        $result mysql_query($sql) OR die(mysql_error());
                        header ("location: ../members/register.php?register");
                        }; 
                        Es tut mir sehr leid für die zu große Fensterbreite.. aber der Umbruch ist hier zur demonstration wichtig.

                        Micronax
                        Zuletzt geändert von ; 08.03.2006, 20:13.

                        Kommentar


                        • #13
                          Wir haben schon verstanden, dass du das auskommentiert hast und das Forum angeblich am Umbruch schuld ist.


                          Das ändert aber nix dran, dass dein Code sinnlos ist, der Code den du eben gepostet hast passt, ist wohl der originalcode?

                          Kommentar


                          • #14
                            und was ist jetzt damit?

                            Kommentar


                            • #15
                              Das ist der Originalcode. ich habe ihn auskommentiert, damit nicht jedes mal ein neuer user in der db angelegt wird. Da die Zeilen aber zu lang waren, hab ich sie im Forum umgebrochen, und dabei sind halt einige Zeilen falsch ähm.. geworden..

                              Micronax

                              PS: Er eit den Parse Error aber in Zeile 48. Und da ist nach Dreamweaver nur ?> also.. was könnte flasch sein?

                              Kommentar

                              Lädt...
                              X