So melden Sie sich mit Curl über SSL und Cookies an
Problem:
Anmelden Eine Website, die Curl verwendet, insbesondere barnesandnoble.com, ist nicht erfolgreich. Die Seite wird ohne Fehler zurückgegeben, das E-Mail-Feld wird jedoch mit der ursprünglich eingegebenen E-Mail-Adresse gefüllt. Das Ändern der Anmelde-URL zu einer Nicht-HTTPS-Website (z. B. eBay) ermöglicht eine erfolgreiche Anmeldung.
Ursache:
Mögliche Ursachen sind:
Lösung:
Der folgende Code behebt diese Probleme und demonstriert eine erfolgreiche Anmeldung mit Curl, SSL und Cookies:
</p> <p>//...<br>// Vorherige Curl-Optionen wurden der Kürze halber weggelassen<br>//...</p> <p>// Formularfelder abrufen<br>$fields = getFormFields($content);</p> <p>// E-Mail und Passwort festlegen<br>$fields['emailAddress'] = $EMAIL;<br>$fields['acctPassword'] = $PASSWORD; </p> <p>// X-Wert abrufen<br>if (preg_match('/op.asp?x=(d )/i', $content, $match)) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$x = $match[1];
}
// Anmelde-URL mit x-Wert festlegen
$LOGINURL = "https://cart2.barnesandnoble.com/mobileacct/op.asp?x=$x";
// POST-Felder festlegen
$POSTFIELDS = http_build_query($fields);
// URL in Anmelde-URL ändern
curl_setopt($ch, CURLOPT_URL, $LOGINURL);
// Beitragsoptionen festlegen
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POSTFIELDS);
// Anmeldung durchführen
$result = curl_exec( $ch);
print $result;
//...
Erklärung:
Durch Implementierung Durch diese Änderungen kann sich Curl trotz der Verwendung von HTTPS und den möglichen Unterschieden in der Cookie-Verarbeitung erfolgreich anmelden.
Das obige ist der detaillierte Inhalt vonWie melde ich mich mit Curl bei Websites mit SSL und Cookies an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!