nokill2003: Ausgabe Variabel

hallo leute,
ich habe das Problem in php keine vordefinierte Variable ausgeben zu können hier mal mein .html und .php dokument

das .html eingabe dokument

<html>
<head></head>
<body>

<FORM ACTION="tuwas.php" METHOD=POST>
        <INPUT NAME="any">
        <INPUT TYPE="submit">
        </FORM>

</body>
</html>

und das .php dokument

<html>
<head>
</head>
<body>

<script language="php">
                echo "Sie haben $any  eingegeben. ";

</script>
</body>
</html>

ich habe es schon mit allen möglichen Umbenennungen versucht aber es kommt immer

"Sie haben eingegeben."

schon mal danke im vorraus

  1. Hi

    <script language="php">
                    echo "Sie haben $any  eingegeben. ";

    </script>

    was soll das sein?
    php-text steht zwischen <?php und ?> oder sollte mir etwas entgangen sein und man kann dies auch so schreiben?
    <?php
    echo "Sie haben $any  eingegeben. ";
    ?>
    sollte bei eingeschalteten register_globals funktionieren.
    Ansonsten wären $_POST["any"] bzw. $HTTP_POST_VARS["any"] die Variablen!
    (Je nach PHP-Version->zweiteres gilt für ältere Versionen, imho unter 4.1)

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
    Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
    Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
    1. Moin!

      Hi

      <script language="php">
                      echo "Sie haben $any  eingegeben. ";

      </script>

      was soll das sein?
      php-text steht zwischen <?php und ?> oder sollte mir etwas entgangen sein und man kann dies auch so schreiben?

      Nur weil du es nicht kennst, ist es noch lange nicht verboten. Vor dem Rückfragen lieber mal die Doku konsultieren :)

      http://de.php.net/manual/de/language.basic-syntax.php

      <?php
      echo "Sie haben $any  eingegeben. ";
      ?>
      sollte bei eingeschalteten register_globals funktionieren.
      Ansonsten wären $_POST["any"] bzw. $HTTP_POST_VARS["any"] die Variablen!
      (Je nach PHP-Version->zweiteres gilt für ältere Versionen, imho unter 4.1)

      In Anbetracht, dass das Eingabefeld ziemlich kurz geschrieben wurde (<input name="any">), würde ich zwar vermuten, dass der Browser Standardwerte annimmt, aber mich nicht drauf verlassen. Ein Texteingabefeld (einzeilig) benötigt immer noch type="text" als Attribut - zumindest ist es sinnvoll, es anzugeben.

      - Sven Rautenberg

      --
      ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
  2. Hallo,

    ich habe es schon mit allen möglichen Umbenennungen versucht aber es kommt immer

    *seufz* - http://selfsuche.teamone.de/ im </archiv/> bitte nach register_globals.

    Du suchst übrigens $_POST['any'] - was Du in Zeichenketten allerdings als {$_POST['any']} schreiben musst.

    Viele Grüße,
    Christian

  3. und das .php dokument

    <html>
    <head>
    </head>
    <body>

    <script language="php">
                    echo "Sie haben $any  eingegeben. ";

    </script>
    </body>
    </html>

    also ich habe zwar noch nie mir <script language="php" gearbeitet, aber habe es schonmal gesehen, und denke mal dass das nich der fehler is

    aber: welche version von php nutzt du?

    weil ab ner bestinmmten version stehen gepostete variablen in $_POST

    allerdings müsste er dann einen fehler ausspucken, ok, es sei denn die fehlerberichte sind deaktiviert

    aber mach einfach mal var_dump($_POST);

    und schau was rauskommt

    gruß

  4. hi nochmal und danke an alle (das hier wird ja archiviert)
    darum hier die Problemlösung

    das .html Dokument

    <html>
    <head></head>
    <body>

    <FORM ACTION="tuwas.php" METHOD=POST>
            <INPUT NAME="any">
            <INPUT TYPE="submit">
            </FORM>

    </body>
    </html>

    und das .php Dokument

    <html>
    <head>
    </head>
    <body>

    <script language="php">
                    echo "Sie haben $_POST[any] eingegeben. ";
                               //       ^  Das ist die entscheidende
                               //      / \ Änderung
    </script>
    </body>
    </html>

    ach übrigens man kann die Phpabschnitte in 4 Varianten schreiben

    1. <? ... ?>
    2. <?php ... ?>
    3. <script language="php"> ... </script>
    4. <% ... %>

    wobei ... die Befehle sind
    Quelle
    http://www.php-center.de/tutorial/teil1.htm
    tschau

      1. <? ... ?>
      2. <?php ... ?>
      3. <script language="php"> ... </script>
      4. <% ... %>

      Dazu angemerkt:
      Immer funktionieren sollten nur die Varianten 2 und 3 (wobei 3 auch den meisten Editoren Probleme macht bzgl. des Source-Highlighting ... wer jedoch mit Hotmetal arbeitet, wird dies wiederum zu schätzen wissen, da dann der Code nicht neu formatiert wird).
      Die anderen beiden Varianten (1: short open-tags, 2: asp-tags) können je nach Konfiguration deaktiviert bzw. anderweitig vergeben sein. Wer seine Skripte also möglichst universell einsetzbar halten will, sollte sich an 2. bzw. 3. halten.

    1. Moin!

      hi nochmal und danke an alle (das hier wird ja archiviert)
      darum hier die Problemlösung
       <script language="php">
                      echo "Sie haben $_POST[any] eingegeben. ";
                                 //       ^  Das ist die entscheidende
                                 //      / \ Änderung
      </script>

      Das sieht zwar aus wie die Lösung, ist es aber nicht ganz. Du generierst zumindest eine Notice, dass PHP die Konstante any nicht kennt und stattdessen den String "any" annimmt. Dies ist eine für die Zukunft nicht garantierte Funktion!

      Wirklich 100% korrekt wäre:

      echo "Sie haben {$_POST['any']} eingegeben.";

      Die geschweiften Klammern sind bei Arrays nie verkehrt, wenn das Array innerhalb von doppelten Anführungsstrichen evaluiert werden soll. Einfache Variablen funktionieren ohne.

      Der wichtige Unterschied sind die einfachen Anführungszeichen um das Wort 'any'. Mit Anführungszeichen ist es ein String, der einen Schlüssel des Arrays bezeichnet. Ohne Anführungszeichen ist die (nicht existierende) Konstante any gemeint, die man vorher mit define('any','Wert_von_Any'); festlegen könnte.

      - Sven Rautenberg

      --
      ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|