Patrick Canterino: Kompletter POST-String als Variable

Hallo Forum!

Weiß zufällig jemand von euch, wie man diesen Perl-Befehl in PHP darstellen könnte:

read(STDIN, my $daten, $ENV{CONTENT_LENGHT});

Ich will nämlich, dass mein PHP-Form-Mailer erkennt, ob er wirklich Daten mit POST übrmittelt bekommen hat.

Viele Grüße

Patrick Canterino

  1. Weiß zufällig jemand von euch, wie man diesen Perl-Befehl in PHP darstellen könnte:

    read(STDIN, my $daten, $ENV{CONTENT_LENGHT});

    Ich kenne mich mit Perl nicht aus, aber das sieht so aus, als wenn es in der Regel schon vom Prinzip her nicht funktionieren würde. Du liest da von der Standardeingabe, d.h. Perl läuft als CGI-Anwendung. PHP läuft aber in so gut wie allen Fällen als Modul, wenn überhaupt, hat man da als Standardein- oder -ausgabe die des Webservers.

    Ich will nämlich, dass mein PHP-Form-Mailer erkennt, ob er wirklich Daten mit POST übrmittelt bekommen hat.

    Du bekommst alle POST-Sachen von PHP als Variablen zur Verfügung gestellt und die kann Dir AFAIK auch keiner untermogeln. phpinfo() schafft Klärung in welchen Variablen was auftaucht.

    Gruß,
      soenk.e

    1. read(STDIN, my $daten, $ENV{CONTENT_LENGHT});
      Ich kenne mich mit Perl nicht aus, aber das sieht so aus, als
      wenn es in der Regel schon vom Prinzip her nicht funktionieren
      würde.

      http://selfhtml.teamone.de/cgiperl/intro/formularverarbeitung.htm#get_post

  2. Moin!

    Ich will nämlich, dass mein PHP-Form-Mailer erkennt, ob er wirklich Daten mit POST übrmittelt bekommen hat.

    Wenn du wirklich nur die POST-Variablen des Formulars verwenden willst, dann laß den Formmailer nicht auf Variablen wie $email, $mailtext oder $absendername zurückgreifen, sondern verwende stattdessen den Hash $HTTP_POST_VARS.

    Die drei Beispielvariablen würden dann lauten:
    $HTTP_POST_VARS['email'], $HTTP_POST_VARS['mailtext'] und $HTTP_POST_VARS['absendername']. Wurde nicht mit POST übermittelt, existiert der Hash nicht, und die Ausgabe bleibt leer.

    Du kannst also mit
    if (isset($HTTP_POST_VARS)) {...POST wurde gemacht }
    variabel formmailen oder auch nicht.

    Außerdem steht die Art des Zugriffs in der Serverumgebungsvariablen "REQUEST_METHOD" drin, auf die du ebenfalls zugreifen kannst, egal welche Skript- oder sonstige Sprache du verwendest.

    - Sven Rautenberg

    1. Hallo Sven,

      Du kannst also mit
      if (isset($HTTP_POST_VARS)) {...POST wurde gemacht }
      variabel formmailen oder auch nicht.

      Das hat leider nicht ganz so funktioniert, wie ich es mir vorgestellt hatte. empty() hat das korrekte Ergebnis geliefert.

      Trotzdem Danke!

      Viele Grüße

      Patrick Canterino