PHP zeigt Parse Error bei ?>

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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())"; 
    Last edited by fox34; 08-03-2006, 18:58.

    Comment


    • #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");
      }; */
      ?> 

      Comment


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

        Comment


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

          Comment


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

            Micronax

            Comment


            • #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

              Comment


              • #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

                Comment


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

                  Comment


                  • #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

                    Comment


                    • #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.

                      Comment


                      • #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
                        Last edited by ; 08-03-2006, 19:13.

                        Comment


                        • #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?

                          Comment


                          • #14
                            und was ist jetzt damit?

                            Comment


                            • #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?

                              Comment

                              Working...
                              X