Günther: $_post

Hallo,

ich habe ein Problem. Ich möchte ein ganz stinknormales php-Formular erstellen. Allerdings hakt es hier etwas an der $_post-variable. am anfang will ich natürlich wissen, ob überhaupt daten übergeben worden sind, also:

if($_post){php}else {html}

Nur leider übergibt er mir nie das richtige. wenn ich mir $_post anzeigen lasse, kommt, egal, ob was ausgefüllt ist oder nicht, nur "Array". Woran könnte das denn liegen?
Dazu müßte ich vielleicht noch sagen, daß die seite in einem buffer (ob_start()) ausgeführt wird. Allerdings scheint das kein grundsätzliches Problem zu sein, weil die Inhalte der input-Zeilen ja auch alle übergeben werden. Nur die Abfrage mit dem $_post funktioniert nicht.

Viele Grüße,
Günther

  1. Hello,

    if($_post){php}else {html}

    Variablennamen sind case sensitive in PHP
    das sollte deshalb auch heißen:

    if($_POST)
       {
          echo "es wurde ein  Postparameter gesendet\r\n";
       }

    oder explizit:

    if(($postsize = count($_POST)) != 0)
       {
          echo "es wurden $postsize  Postparameter gesendet\r\n";
       }

    mit

    echo "<pre>\r\n";
         echo htmlspecialchars(print_r($_POST),1);
         echo "</pre>\r\n";

    kannst Du Dir die Parameter im einzelnen anzeigen lassen.

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  2. Nur leider übergibt er mir nie das richtige. wenn ich mir $_post anzeigen lasse, kommt, egal, ob was ausgefüllt ist oder nicht, nur "Array". Woran könnte das denn liegen?

    Wundert mich, dass du ein Array bekommst, denn eigentlich gibt es $_post nicht, die Variable heißt $_POST.

    Gruß,
    Andreas

  3. n'abend,

    if($_post){php}else {html}

    korrekt wäre $_POST

    Nur leider übergibt er mir nie das richtige. wenn ich mir $_post anzeigen lasse, kommt, egal, ob was ausgefüllt ist oder nicht, nur "Array". Woran könnte das denn liegen?

    Das liegt daran, dass ein Array nun mal kein Text ist, sondern eine etwas komplexere Datenstruktur, weshalb das nicht einfach so ausgegeben werden kann.

    mit var_dump() und print_r() kannst du dir die Inhalte der Variablen ausgeben lassen.

    Dazu müßte ich vielleicht noch sagen, daß die seite in einem buffer (ob_start()) ausgeführt wird. Allerdings scheint das kein grundsätzliches Problem zu sein, weil die Inhalte der input-Zeilen ja auch alle übergeben werden. Nur die Abfrage mit dem $_post funktioniert nicht.

    ob = OutputBuffer -- das bedeutet lediglich, dass deine Ausgabeanweisungen nicht an den Client durchgegeben, sondern zwischengespeichert werden, bis du sie mit ob_get_clean() (o.ä.) oder ob_end_flush() (o.ä.) wieder holst, resp. frei gibst. Das ist nur eine Ausgabeverzögerung.

    weiterhin schönen abend...

    --
    #selfhtml hat ein Forum?
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
  4. Danke an alle! Das hat geholfen!

    Ja, ich weiß, ich hatte $_POST großgeschrieben. Entschuldigung, war nur Faulheit.