639 Stimmen

PHP, cURL, und HTTP POST Beispiel?

Kann mir jemand zeigen, wie man ein PHP cURL mit einem HTTP POST zu tun?

Ich möchte Daten wie diese senden:

username=user1, password=passuser1, gender=1

An www.example.com

Ich erwarte von cURL eine Antwort wie result=OK . Gibt es irgendwelche Beispiele?

3voto

AzizSM Punkte 5969

Hier sind einige Grundregeln für PHP + curl http://www.webbotsspidersscreenscrapers.com/DSP_download.php

in diese Bibliothek aufzunehmen, wird die Entwicklung vereinfachen

<?php
# Initialization
include("LIB_http.php");
include("LIB_parse.php");
$product_array=array();
$product_count=0;

# Download the target (store) web page
$target = "http://www.tellmewhenitchanges.com/buyair";
$web_page = http_get($target, "");
    ...
?>

3voto

Serhii Andriichuk Punkte 770

Beispiele für das Senden Formular y roh Daten:

$curlHandler = curl_init();

curl_setopt_array($curlHandler, [
    CURLOPT_URL => 'https://postman-echo.com/post',
    CURLOPT_RETURNTRANSFER => true,

    /**
     * Specify POST method
     */
    CURLOPT_POST => true,

    /**
     * Specify array of form fields
     */
    CURLOPT_POSTFIELDS => [
        'foo' => 'bar',
        'baz' => 'biz',
    ],
]);

$response = curl_exec($curlHandler);

curl_close($curlHandler);

echo($response);

2voto

Atanas Atanasov Punkte 143

Wenn Sie versuchen, sich auf einer Website mit Cookies anzumelden.

Dieser Code:

if ($server_output == "OK") { ... } else { ... }

Möglicherweise funktioniert es nicht, wenn Sie versuchen, sich anzumelden, da viele Websites den Status 200 zurückgeben, aber die Buchung nicht erfolgreich ist.

Der einfache Weg, um zu überprüfen, ob der Login-Post erfolgreich war, ist zu überprüfen, ob er wieder Cookies setzt. Wenn in der Ausgabe eine Set-Cookies-Zeichenkette erscheint, bedeutet dies, dass der Beitrag nicht erfolgreich war und eine neue Sitzung beginnt.

Es kann auch sein, dass der Beitrag erfolgreich ist, aber der Status nicht 200, sondern eine Weiterleitung ist.

Um sicherzugehen, dass der Beitrag erfolgreich ist, versuchen Sie dies:

Folgen Sie dem Ort nach dem Beitrag, damit er auf die Seite weitergeleitet wird, auf die der Beitrag verweist:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Und dann prüfen, ob neue Cookies in der Anfrage vorhanden sind:

if (!preg_match('/^Set-Cookie:\s*([^;]*)/mi', $server_output)) 

{echo 'post successful'; }

else { echo 'not successful'; }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X