Verwenden von curl zum Senden / Abrufen von Formularergebnissen

9

Ich brauche Hilfe beim Versuch, curl zu verwenden, um Daten auf einer Seite zu veröffentlichen und die Ergebnisse abzurufen, nachdem das Formular abgeschickt wurde.

Ich habe ein einfaches Formular erstellt:

%Vor%

Außerdem habe ich PHP-Code, um dieses Formular auf der gleichen Seite zu behandeln. Es werden nur die Formularwerte zurückgemeldet.

Die Locke, die ich benutzt habe, ist diese:

%Vor%

Wenn ich die Seite mit dem curl code starte, erhalte ich den Inhalt der form.php Seite, aber es wird nicht angezeigt die Variablen, die PHP beim Übergeben des Formulars hätte widerhallen sollen.

würde jede Hilfe mit diesem schätzen.

Danke.

    
Jason 03.01.2011, 22:52
quelle

2 Antworten

2

AHHHH Nach Ihrem Kommentar ist das Problem klar.

Sie müssen eine weitere POST-Variable in Ihr Array einfügen.

%Vor%

Die Submit-Schaltfläche gibt auch einen Post-Wert zurück, wenn Sie darauf klicken, was Sie in Ihrem PHP-Formular überprüfen.

%Vor%

in Ihrem Curl-Code, aber Sie haben die Post-Variable "submitted" weggelassen.

Wenn Sie das suchen, wählen Sie bitte das Häkchen neben dieser Antwort aus. Danke!

    
dqhendricks 03.01.2011, 23:32
quelle
0

Nach dem Lesen der anderen beiden Antworten und dem Kommentar des OP habe ich ein paar Ideen.

Genauer gesagt war der OP-Kommentar:

  

Das manuelle Senden des Formulars erzeugt die richtige Ausgabe. Das PHP, das das Formular behandelt, ist: if (isset ($ _ POST ['submitted'])) {echo $ _POST [Name] ..... usw. und das ist es

Unter Standardbedingungen würde Ihr Basisformular, wie in der Originalfrage angegeben, ein $ _POST-Array wie das Folgende erzeugen:

%Vor%

Ihr Kommentar legt nahe, dass ein Aspekt Ihres Formular-Handlers nach einem $ _POST-Element sucht, das "submitted" genannt wird.

1) Das Basisformular, wie in der Frage angegeben, gibt immer FALSE für eine Prüfung auf $ _POST ['submitted'] zurück und löst als solches die ELSE-Aktion (falls vorhanden) für diese Bedingung aus.

2) Ihre CURL-Aktion legt weder "submit" noch "submitted" fest und gibt immer wieder FALSE für die Bedingung zurück.

Also würde ich vorschlagen, dass Sie:

1) Überprüfen Sie Ihren Formularhandler und sehen Sie, welche Felder wichtig sind, wie ihre Namen lauten und wie ihr Inhalt sein soll.

2) Überprüfen Sie Ihr Basisformular und stellen Sie sicher, dass es die entsprechenden Felder enthält.

3) Überprüfen Sie Ihre CURL-Aktion und stellen Sie sicher, dass sie alle erforderlichen Felder enthält. (Einfacher Check wäre das Einfügen von print_r( $_POST );die(); am Anfang des Formular-Handlers und das Übermitteln des Basisformulars. Dies zeigt Ihnen genau, was das Formular sendet, so dass Sie es in CURL neu erstellen können.

    
Luke Stevenson 03.01.2011 23:42
quelle

Tags und Links