Forum
Tipps
News
Menu-Icon

[gelöst] Versenden eines POST-Formulars simulieren

Hallo,

Könnt ihr mir ein einfaches Programm empfehlen, mit dem man POST-Daten an einen Server versendet. Ich will das Anklicken des Submit-Buttons eines Formulars simulieren und das Ergebnis, also die HTML-Datei, auf der Festplatte abspeichern.

Der Button, den man im Webbrowser anklicken müsste, um auf die nächste Seite zu kommen, sieht in etwa so aus:

<input name="Name" value="Wert" type="submit">

Theoretisch müsste ich ja nur die URL zum Beispiel mit wget aufrufen und zusätzlich noch Name=Wert als POST-Daten mitsenden. Leider bekomme ich es mit wget nicht hin.

Wär super, wenn mir das jemand anhand von einem Beispiel mal erklären könnte oder mir vielleicht ein Programm, das so was kann, empfehlen kann.

thx im Vorraus 

« Letzte Änderung: 22.04.07, 20:26:48 von qotsa »

Antworten zu [gelöst] Versenden eines POST-Formulars simulieren:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi |

Also das einfachste Programm, was sowas kann, wäre telnet. Problem an der Sache ist: Du musst dir den HTTP-Header selber zusammenbauen und die Formdaten mitgeben. Ist aber nicht so riesig schwer, Google hilft da auch weiter: Klick!

Im Zweifelsfall oder bei mehr Wissensdurst einfach mal das RFC zu HTTP/1.1 durchschauen, auch wenn das lästige Arbeit ist ;)

greez 8)
JoSsiF

Das ganze war viel einfacher als ich dachte. Mit wget funktioniert es auf diese Weise:

wget.exe -O output.htm --post-data <POST-Daten> <URL>

Mein Fehler war, dass ich um die Post-Daten Anführungszeichen gesetzt habe, so wie es auch in der Dokumentation seht.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Falls du sowas automatisieren oder das Ergebnis weiterverarbeiten willst, dann kannst du auch programmiertechnisch einiges machen. Hab das grad mal unter PHP mit der cURL-Extension probiert, geht hervorragend :)

Falls dich der Code interessiert, schreib nochmal.

greez 8)
JoSsiF

Ja, würde mich auf jeden Fall interessieren!

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Here we go:

<?php

$postData 
= array();
$postData[&#39;id&#39;] = "00000";
$postData[&#39;vname&#39;] = "einName";

$ch curl_init();

curl_setopt($chCURLOPT_URL"http://www.dieseite.de/dokument.php");
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS$postData);
curl_setopt($chCURLOPT_HEADER0);

$response curl_exec($ch);
 
// Ausgabe der Response-Daten
echo $response

curl_close($ch);
?>

Ich hab das mal lokal mit xampp ausprobiert. Leider erhalte ich diese Fehlermeldung:

Fatal error: Call to undefined function curl_init() in C:\Programme\xampp\htdocs\form.php on line 7

Im Verzeichnis C:\Programme\xampp\php\extensions liegt eine php_curl.dll.

Anscheinend reicht das nicht.

Sorry, bin in PHP noch Anfänger!

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Das reicht leider nicht, bei dir ist cURL deaktiviert.

Du musst erstmal in der php.ini die cURL-Extension aktivieren (das Semikolon vor extension=php_curl.dll wegnehmen). Aufpassen, denn XAMPP hat mehrere php.ini. In der Standard-Konfiguration gilt die in xampp/apache/bin.

Dann musst du noch aus xampp/php die 2 Dateien libeay32.dll und ssleay32.dll nach {windir}/system32 kopieren. Dann Server neu starten, und es sollte funzen.

greez 8)
JoSsiF

Danke!

Es funktioniert!


« Coppermine Upload per FTP möglich?!Free Webspace, Speicherplatz, Domainnamen oder Bilderspeicher »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...

Application Server
Ein Application Server, zu deutsch Anwedungsserver, ist ein Netzwerkrechner (Server) auf dem verschiedenste Anwendungsprogramme ausgeführt werden können. Der Be...