Stephan Meder: php - warum geht das nicht ?

<html>
<body>
Trag mal dein Name ein und klick auf absenden:
<form action = "index.php" method = "post">
    <input name = "$w1"> Dein Name<p>
    <input type = "submit">
    <input type = "reset">
    <?php
    if (w1 == "manuel")
    echo "probiers mal mit trottel !!! "
    if (w1 =="trottel")
    echo "RICHTIG DU BIST EINER !!!"
                                               ?>

</form>
</body>
</html>
will damit mal meinen bruder verarschen, kriegs aber net hin.. ich kreig jedesmal nen parser error :

Parse error: parse error, unexpected T_ELSE, expecting ',' or ';' in C:\swamp\www\index.php on line 11..
wer kann mir helfen ?!

  1. Hallo!

    nicht:    <input name = "$w1"> Dein Name<p>
    sondern:  <input name = "w1"> Dein Name<p>

    nicht:    if (w1 == "manuel") echo "probiers mal mit trottel !!! "
    sondern:  if ($w1 == "manuel") echo "probiers mal mit trottel !!! ";

    und in der nächsten Zeile ebenfalls.

    Geht aber nur bei register_globals=on (und ist nicht wirklich valides HTML)

    Gruß, Achim

    1. Moin!
      bei ihm ist aber laut phpinfo register_globalt auf off gestellt...
      http://stevem.mine.nu/phpinfo.php
      ani

      --
      Wer mit sich selber
      in Frieden lebt,
      kommt nicht in Versuchung,
      anderen den Krieg zu erklären.
    2. Hallo Achim,

      Geht aber nur bei register_globals=on (und ist nicht wirklich valides HTML)

      ähh... und was hat das mit html zu tun?

      Grüße aus Nürnberg
      Tobias

      --
      Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
      1. Hallo!

        Was ich meinte, war, dass die Datei an sich nicht in validem HTML verfasst ist. Das hat natürlich nix mit den register_globals zu tun...

        Gruß (aus ebenfalls Nürnberg), Achim

        1. Hallo Achim,

          Was ich meinte, war, dass die Datei an sich nicht in validem HTML verfasst ist.

          das html das in deinem Posting steht ist doch ok ... (gut, das im Ursprungsposting ist nicht valide aber die falsche(n) Stelle(n) ist/sind nicht zitiert :-)).

          Das hat natürlich nix mit den register_globals zu tun...

          das hätte mich auch sehr gewundert :-)

          Grüße aus Nürnberg
          Tobias

          --
          Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
          1. Hallo nach Nürnberg!

            Aber irgendwie haben die ganzen Tipps nix genutzt...
            http://stevem.mine.nu/index.php gibt immer noch dies aus:
            Parse error: parse error, unexpected T_IF, expecting ',' or ';' in C:\swamp\www\index.php on line 11

            Da ist dann ganz sicher zweitrangig, ob's valide ist oder nicht... ;-)

            Gruß aus Nürnberg, Achim

            1. Hallo nach Nürnberg!

              dito :-)

              Aber irgendwie haben die ganzen Tipps nix genutzt...

              ich würde mal sagen, da hat jemand einfach noch nichts geändert (vielleicht hat Stephan die Antwortgeschwindigkeit unterschätzt :-))

              Da ist dann ganz sicher zweitrangig, ob's valide ist oder nicht... ;-)

              na die Fehlermeldung ist es jedenfalls nicht ;-)

              Gruß aus Nürnberg, Achim

              laut falk.de nur ca. 8km von mir entfernt, ja :-)

              Grüße aus Nürnberg
              Tobias

              --
              Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
  2. Hello,

    <html>
    <body>
    Trag mal dein Name ein und klick auf absenden:
    <form action = "index.php" method = "post">
        <input name = "$w1"> Dein Name<p>
        <input type = "submit">
        <input type = "reset">
        <?php
        if (w1 == "manuel")
        echo "probiers mal mit trottel !!! "
        if (w1 =="trottel")
        echo "RICHTIG DU BIST EINER !!!"
                                                   ?>

    </form>
    </body>
    </html>
    will damit mal meinen bruder verarschen, kriegs aber net hin.. ich kreig jedesmal nen parser error :

    Parse error: parse error, unexpected T_ELSE, expecting ',' or ';' in C:\swamp\www\index.php on line 11..
    wer kann mir helfen ?!

    1. Das ist aber hässlich :-(
    2. der Debugger sagt Dir doch, wo der Fehler ist: Es fehlt ein Komma oder ein Semikolon.

    Es fehlen sogar Semikolen und ein Schließtag

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  3. Moin!

    <html>
    <body>
    Trag mal dein Name ein und klick auf absenden:
    <form action = "index.php" method = "post">
        <input name = "$w1"> Dein Name<p>

    schon mal etwas falsch, so: <input type="text" name = "w1">

    <input type = "submit">
        <input type = "reset">
        <?php
        if (w1 == "manuel")
        echo "probiers mal mit trottel !!! "
        if (w1 =="trottel")
        echo "RICHTIG DU BIST EINER !!!"
                                                   ?>

    das ganz anders:
        <?php
         if ($w1 == "manuel"){
         echo "probiers mal mit trottel !!! ";
         } elseif ($w1 =="trottel"){
         echo "RICHTIG DU BIST EINER !!!";
         }
         ?>
    du hast entsprechende semikolons(;) vergessen, und die geschweiften klammern({}). dann noch das dollarzeichen ($) vor den variablen im phpscript, statt dessen hast du das im formular geschrieben...

    ani

    --
    Wer mit sich selber
    in Frieden lebt,
    kommt nicht in Versuchung,
    anderen den Krieg zu erklären.
    1. Hallo ani,

      <input name = "$w1"> Dein Name<p>
      schon mal etwas falsch, so: <input type="text" name = "w1">

      nein, das ist vollkommen korrekt - type ist optional und hat als Standardwert "text", und name hat CDATA als Inhalt, also ist auch '$w1' erlaubt: http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT (das Stephan vermutlich nicht '$w1' sondern 'w1' als Name will, ist was anderes :-))

      if ($w1 == "manuel"){

      das ist auch nicht wesentlich besser, besser wäre
       if($_POST['w1']=='manuel'){ echo '...'; }
      evtl. noch ein oder zwei Stringfunktionen angebracht (String in Kleinbuchstaben umwandeln, Leerzeichen entfernen).

      du hast entsprechende semikolons(;) vergessen, und die geschweiften klammern({}).

      das mit den ; ist richtig, aber die Klammern sind optional.

      Grüße aus Nürnberg
      Tobias

      --
      Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
  4. will damit mal meinen bruder verarschen

    Krass, ey.