Johnny: Post-Request

Hallo SelfForum,

ich versuche, einen Post-Request mittels eines Scripts zu simulieren. Dazu habe ich folgendes ausprobiert (laut CPAN-Beschreibung):

...
use LWP::UserAgent;
use HTTP::Request::Common;

$ua = LWP::UserAgent->new;
$ua->request(POST 'http://www.mydomain.de/formmail.pl',
[name  => 'Johnny',
 email => 'meine@email.de']);
...

Das Script "formmail.pl" liegt auf meinem Server, übermittelt aber nach diesem Aufruf keine Daten.

Dann habe ich noch folgendes ausprobiert (CPAN-Suche: "lwpcook"):

use LWP::UserAgent;
  $ua = LWP::UserAgent->new;

my $req = HTTP::Request->new(POST => 'http://www.mydomain.de/formmail.pl');
  $req->content_type('application/x-www-form-urlencoded');
  $req->content('match=www&errors=0&name=Johnny&email=meine@email.de');

my $res = $ua->request($req);
  print $res->as_string;

Da tat sich dann auch nichts. Kann mir jemand einen Tipp geben - hab ich was übersehen?

Thanx a lot!
JOhnnY

  1. Hi Johnny,

    ich versuche, einen Post-Request mittels eines Scripts zu simulieren. Dazu habe ich folgendes ausprobiert (laut CPAN-Beschreibung): [...]

    Frage doch mal ab, ob der Request überhaupt erfolgreich war und wenn nein, warum nicht:

    $antwort = $ua->request(POST 'http://www.mydomain.de/formmail.pl',
                                 [name => 'Johnny',
                                  email => 'meine@email.de']);
    if( $antwort->is_error() ) {
      print "Fehlercode: ",$antwort->code(),"\n";
      print "Fehlermeldung: ",$antwort->message(),"\n";
    }

    Sollte der Request erfolgreich abgeschickt worden sein, überprüfe, ob dein Formmailer die Daten korrekt einliest, lass dir die angekommenen Daten einfach mal per print-Anweisung anzeigen. Darüber hinaus solltest du auf jeden Fall auch einen Blick in die Log-Datei werfen.

    Viele Grüße
    Torsten

    1. Hi Torsten,

      vielen Dank für die Antwort.

      Frage doch mal ab, ob der Request überhaupt erfolgreich war und wenn nein, warum nicht:

      Errorcode 403 - Forbidden

      Das wundert mich jetzt - wieso ist der Zugriff auf das Script nicht erlaubt?!?? Von der Webseite aus kann ich das Formular doch abschicken. Ich dachte der POST-Request simuliert eine Browser-Anfrage und das Abschicken des Formulars - so daß es für das empfangende Script quasi dasselbe ist? Die Zugriffsrechte auf das Script sind auf 755 gesetzt. Wenn ich das Script direkt per Browser anwähle, kommt auch ein 403er-Error.

      Also einen Schritt weiter: wie bekomme ich nun den Request so hin, daß es funktioniert?

      Grazie,
      JOhnnY

      1. hi JOhnnY

        vielen Dank für die Antwort.

        Frage doch mal ab, ob der Request überhaupt erfolgreich war und wenn nein, warum nicht:

        Errorcode 403 - Forbidden

        guck mal
        http://i-netlab.de/cgi-bin/index.cgi?display=40.10

        beschreibt wie ein POST mit der libwww und PERL gemacht werden kann.

        und falls das CGI ein Passwort erfordert kann das in den UA eingebaut werden.

        Viele Grüße, Rolf

        1. Moin Rolf,

          guck mal
          http://i-netlab.de/cgi-bin/index.cgi?display=40.10

          Yo, das werde ich mir mal zu Gemüte führen - sollte alle Fragen beantworten. Wenn ich dann irgendwo nicht mehr weiterkommen sollte, geb ich nochmal Laut... Danke Dir!

          JOhnnY