Kalle: Array-Übernahme aus <FORM> funzt nicht

Hallo, Forumler,

im WEB klappt's, bei meinem lokalen FoxServ unter NT 4.0 aber nicht:

<FORM name='Terminpflege' action="<?php echo $PHP_SELF; ?>" method=post>
<input type='text' name='datum[1]'><!-- Eintrag vorhanden! -->
<input type='text' name='datum[2]'><!-- Eintrag vorhanden! -->
...

PHP-Datei:
echo "datum[1]=[".$datum[1]."]<br>";
echo "datum[1]=[".$HTTP_POST_VARS["datum[1]"]."]<br>";

Anzeige:
datum[1]=[]
datum[1]=[]

Was ist das jetzt wieder ?

Liebe Grüße aus Worms, Kalle

  1. Hi

    <FORM name='Terminpflege' action="<?php echo $PHP_SELF; ?>" method=post>
    <input type='text' name='datum[1]'><!-- Eintrag vorhanden! -->
    <input type='text' name='datum[2]'><!-- Eintrag vorhanden! -->
    ...

    PHP-Datei:
    echo "datum[1]=[".$datum[1]."]<br>";
    echo "datum[1]=[".$HTTP_POST_VARS["datum[1]"]."]<br>";

    [ ] Du kennst REGISTER_GLOBALS
    [ ] Du kennst die Variablendimensionskonventionen bei der Echo-Standard-Ausgabe.

    Anzeige:
    datum[1]=[]
    datum[1]=[]

    Was ist das jetzt wieder ?

    Müll?

    Fabian

    1. Hi, Fabian,

      [ ] Du kennst REGISTER_GLOBALS

      Nein, danke für den Tip. Habe \WINNT\php.ini geändert in:
      register_globals = on

      und Apache restarted. Hat mich nich gehilft.

      [ ] Du kennst die Variablendimensionskonventionen bei der Echo-Standard-Ausgabe.

      Kleiner Hinweis ?

      Wie gesagt, wenn ich auf dem WEB-Server arbeite, funzt es.

      Kalle

      1. Hi

        [ ] Du kennst REGISTER_GLOBALS
        Nein, danke für den Tip. Habe \WINNT\php.ini geändert in:
        register_globals = on

        *WAH* Genau andersherum. Ändere es zur eigenen Sicherheit wieder auf OFF und recherchiere im Archiv, warum.

        und Apache restarted. Hat mich nich gehilft.

        Natürlich nicht.

        [ ] Du kennst die Variablendimensionskonventionen bei der Echo-Standard-Ausgabe.
        Kleiner Hinweis ?

        1. Hör auf zu Plenken.
        2. Echo kann innerhalt von ""-Ausgaben nur einfache Variablen ausgeben, aber _nicht_ Array-Indizes. Schreibe stattdessen
        echo "stringausgabe...".$array[index]."noch ein string";

        Wie gesagt, wenn ich auf dem WEB-Server arbeite, funzt es.

        Dann schmeiß ihn lieber weg. Du solltest auf POST- und GET-Variablen nur über die entsprechenden Globals ($_POST,$_GET) zugreifen, niemals über REGISTER_GLOBALS.

        Fabian

        1. Hi, Fabian,

          was ich nicht wusste: Ein Array ist mit nur *EINEM* $_POST zu übernehmen. Jetzt klappt es.

          Danke, Kalle.

  2. Moin!

    im WEB klappt's, bei meinem lokalen FoxServ unter NT 4.0 aber nicht:

    <FORM name='Terminpflege' action="<?php echo $PHP_SELF; ?>" method=post>
    <input type='text' name='datum[1]'><!-- Eintrag vorhanden! -->
    <input type='text' name='datum[2]'><!-- Eintrag vorhanden! -->
    ...

    PHP-Datei:
    echo "datum[1]=[".$datum[1]."]<br>";
    echo "datum[1]=[".$HTTP_POST_VARS["datum[1]"]."]<br>";

    Wie greift man auf mehrdimensionale Arrays zu? Na? Jedenfalls nicht so, wie du es hier versuchst.

    Und ein weiteres Problem könnte sein, dass $HTTP_POST_VARS seit PHP-Version 4.1 besser nicht mehr benutzt und durch $_POST ersetzt werden sollte.

    Und außerdem noch der gute Tipp: Bei Problemen mit Wertübergaben an PHP immer erstmal checken, was überhaupt ankommt:

    phpinfo(INFO_VARIABLES);

    - Sven Rautenberg

    --
    "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)
    1. Moin, Sven

      phpinfo(INFO_VARIABLES);

      prima Tipp, kannte ich noch nicht. Array ist vorhanden, Übernahme klappt mit
      $datum = $_POST["datum"];

      Im WEB habe ich noch die alte Programm-Version OHNE mit $_POST zu holen, $datum[1] war einfach da.

      Danke, Kalle.