لا يمكن استخدام ملفات تعريف الارتباط في حليقة PHP

StackOverflow https://stackoverflow.com/questions/3852750

  •  27-09-2019
  •  | 
  •  

سؤال

أنا أستخدم Curl لتحليل موقع ويب.

http://www.hcmiu.edu.vn/bookforsale/showbooks.php

تحتاج إلى جلسة للعرض ، إذا لم يكن لديك جلسة ، فإن الصفحة إعادة توجيه إلى:

http://www.hcmiu.edu.vn/bookforsale/perinfo.php

أستخدم هذا الرمز للحصول على ملف تعريف ارتباط للجلسة ، لكنني لا أعرف لماذا لا أستطيع رؤية أي تغيير في ملفات تعريف الارتباط

$urltopost = "http://www.hcmiu.edu.vn/bookforsale/perInfo.php";
$datatopost = array (
"name" => "abc",
"tel" => "99999999",
"email" => "abc@gmail.com",
"profession" => "abc",
"employer" => "abc",
"tel_work" => "99999999",
); 
$ch = curl_init($urltopost);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $datatopost);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookies.txt"); 

$returnData = curl_exec($ch);
$file = fopen("example.txt", "w");
fwrite($file, $returnData);
fclose($file);
curl_close($ch);

ومع ذلك ، أرى:

Set-Cookie: PHPSESSID=1egb993objkrdp3gi5mpvs02g0; path=/ 

في الرأس. شكرا على اي مساعدة

-edit: أستخدم طريقة صعبة: أستخدم HTTP Viewer لعرض phpsessid في ملفات تعريف الارتباط للمتصفح. ثم أستخدمه لإنشاء ملف ملفات تعريف الارتباط لقراءته. بعد ذلك ، يمكنني تمرير فحص الجلسة لخادم الويب لعرض ملفات showbooks.php.

هل كانت مفيدة؟

المحلول

لقد استخدمت مقتطف الرمز هذا لاستخراج ملف تعريف الارتباط من استجابة الخادم:

$returnData = curl_exec($ch);
$cookie = '';
$pattern = '/Set-Cookie:(.*?)\n/';
if (preg_match($pattern, $returnData, $result))
$cookie = $result[1];

لقد وصفت تجربتي في هذا المشنور. هذا النهج لا يستخدم ملف ملفات تعريف الارتباط.


ما يتعلق ملف ملفات تعريف الارتباط, النظر في النصيحة التالية من http://php.net/manual/en/book.curl.php:

استخدم المسار المطلق لإعداد المتغيرات Curlopt_CookieFile & Curlopt_CookieJar. لجعل الحياة أسهل استخدام وظيفة RealPath ("file.txt") للحصول على المسار المطلق.

نصائح أخرى

هل الملف قابل للكتابة؟ هل هو موجود؟

حاول إنشاء الملف ومنحه امتياز الكتابة العالمية.

حاول أيضًا مع مسار نسبي (على سبيل المثال ، ./coowies.txt) بدلاً من المسار المطلق لملف جرة ملفات تعريف الارتباط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top