لفة:كيف أعرف ما إذا تم تعيين ملفات تعريف الارتباط الخاصة بي بشكل صحيح؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

$ckfile = tempnam ("/tmp", "CURLCOOKIE");
$useragent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16";

$ch = curl_init ("website.com");
curl_setopt($ch, CURLOPT_USERAGENT, $useragent); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec ($ch);

يقوم موقع الويب بتعيين ملف تعريف ارتباط ثم يقوم بإعادة التوجيه.هل يكفي هذا الكود؟لأنه يبدو أنه لا يتم الحصول على ملف تعريف الارتباط بشكل صحيح.كيف يمكنني التحقق لمعرفة ما إذا كان قد تم ضبطه؟والأفضل من ذلك، إذا كنت أعرف ما هي ملفات تعريف الارتباط التي أريدها، فهل يمكنني صنعها أو شيء من هذا القبيل؟

يحرر:إذن، البرنامج النصي CURL الخاص بي يزور موقع الويب، أليس كذلك؟يقوم موقع الويب بتعيين ملفات تعريف الارتباط للتحقق من صحتها، وأريد معرفة ما إذا كان البرنامج النصي cURL الخاص بي يتلقى ملفات تعريف الارتباط هذه بشكل صحيح.أريد أن أعرف ما إذا كان هناك اختبار لذلك، و/أو أريد أن أعرف ما إذا كان بإمكاني إنشاء ملف تعريف ارتباط للتحقق من صحة موقع الويب.

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

المحلول

وكان لي مؤخرا مشروعا حيث كنت بحاجة لتمرير ملفات تعريف الارتباط بين الملقمات، ولقد وجدت أن وضع حد سواء CURLOPT_COOKIEFILE وCURLOPT_COOKIEJAR إلى نفس الملف لم الحيلة.

إذا كنت مجرد الرغبة في معرفة ما إذا كان يتم تعيين ملفات تعريف الارتباط من موقع بعيد، يجب أن تكون قادرة على النظر في ملف CURLOPT_COOKIEJAR في محرر النصوص.

نصائح أخرى

إذا كان هذا هو تجعيد سطر الأوامر الذي سترميه في ملف -v معامل.انتبه إلى الخطوط التي تبدأ بـ > Cookie:.

نسخة php من هذا هي:

curl_setopt($ch,CURLOPT_VERBOSE,TRUE);//and set CURLOPT_STDERR to STDOUT

وإذا كان هذا متصفحًا فسوف أقوم بتصحيحه باستخدام أحد هذه:يمكنك استخدام العابث على آي إي، عبث البيانات أو فاير بوج (صافي) على فايرفوكس، المفتش على كروم و في رحلات السفاري, ، أو أ الوكيل باستخدام أي متصفح لمشاهدة كيفية إرسال النموذج بواسطة متصفح "عادي".

قد يعمل أسلوب الوكيل إذا قمت بتعيين حليقة php لاستخدامه.

curl_setopt($ch,CURLOPT_HTTPPROXYTUNNEL,TRUE);//& CURLOPT_PROXYPORT CURLOPT_PROXY

إذا كنت تريد فقط إضافة ملفات تعريف الارتباط لطلب واحد، فيمكنك كتابة سطر مثل:

$ch->headers[] = 'Cookie: recent=543..; _session_id=6185..; __utma=572.1.1.1.1; __utmc=572..; __utmz=572.1.1.1.1.utmccn=(referral)|utmcsr=domain.com|utmcct=/request/path|utmcmd=referral';

لكنني لست متأكدًا من ذلك، فقد يكون الأمر على نفس المنوال:

curl_setopt($ch,CURLOPT_COOKIE,"recent=543..; _session_id=618..");
// Possibly, but I think this might overwrite other headers.
curl_setopt($ch,CURLOPT_HTTPHEADER, "Cookie: recent=543..; _session_id=6185..");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top