Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Log Masuk ke Laman Web dengan SSL dan Kuki Menggunakan Curl?

Bagaimana untuk Log Masuk ke Laman Web dengan SSL dan Kuki Menggunakan Curl?

Patricia Arquette
Patricia Arquetteasal
2024-11-10 01:46:03404semak imbas

How to Log In to Websites with SSL and Cookies Using Curl?

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:

  • Perbezaan dalam mengendalikan kuki dan _state antara tapak web ASP/ASPX dan pendekatan yang digunakan oleh Curl
  • Kekurangan parameter URL urlencoded untuk e-mel dan kata laluan dalam rentetan catatan
  • Pengendalian nilai "x" yang salah dalam URL log masuk

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:

  • getFormFields(): Mengekstrak input tersembunyi daripada log masuk borang.
  • Tetapkan e-mel dan kata laluan: Tetapkan nilai e-mel dan kata laluan yang sesuai.
  • Dapatkan nilai x: Dapatkan semula nilai "x" daripada URL log masuk untuk digunakan dalam URL log masuk yang betul.
  • Tetapkan URL log masuk dengan nilai x: Bina URL log masuk yang betul menggunakan nilai "x" yang diperolehi.
  • Tetapkan medan POST: Menukar medan borang menjadi rentetan pertanyaan untuk POST.
  • Tukar URL untuk log masuk URL dan tetapkan pilihan siaran: Mengkonfigurasi pemegang Curl untuk log masuk permintaan.
  • Lakukan log masuk: Laksanakan permintaan log masuk.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn