Cara Log Masuk dengan Curl Menggunakan SSL dan Kuki
Masalah:
Log masuk tapak web menggunakan Curl, khususnya barnesandnoble.com, tidak berjaya. Halaman dikembalikan tanpa ralat, tetapi medan e-mel diisi dengan e-mel awal yang dimasukkan. Menukar URL log masuk kepada tapak web bukan HTTPS (iaitu, eBay) membolehkan log masuk berjaya.
Punca:
Punca yang berpotensi termasuk:
Penyelesaian:
Kod berikut menangani isu ini dan menunjukkan log masuk yang berjaya menggunakan Curl, SSL dan kuki:
//...
// Pilihan keriting sebelumnya ditinggalkan untuk ringkas
//...
// Dapatkan medan borang
$fields = getFormFields($content);
// Tetapkan e-mel dan kata laluan
$fields['emailAddress'] = $EMAIL;
$fields['acctPassword'] = $PASSWORD;
// Dapatkan nilai x
jika (preg_match('/op .asp?x=(d )/i', $content, $match)) {
$x = $match[1];
}
// Tetapkan URL log masuk dengan nilai x
$LOGINURL = "https://cart2.barnesandnoble.com/mobileacct/op.asp?x= $x";
// Tetapkan medan POST
$POSTFIELDS = http_build_query($fields);
// Tukar URL kepada URL log masuk
curl_setopt($ch, CURLOPT_URL, $LOGINURL);
// Tetapkan pilihan siaran
curl_setopt($ ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $POSTFIELDS);
// Lakukan log masuk
$result = curl_exec($ch);
cetak $hasil;
//...
Penjelasan:
Dengan melaksanakan perubahan ini, Curl boleh berjaya log masuk walaupun menggunakan HTTPS dan potensi perbezaan dalam pengendalian kuki.
Atas ialah kandungan terperinci Bagaimana untuk Log Masuk ke Laman Web dengan SSL dan Kuki Menggunakan Curl?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!