cURL: Benim kurabiye düzgün ayarlanmış ediliyor olmadığını nasıl anlarım?

2 Cevap php
$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);

Web sitesi bir cookie ayarlar ve daha sonra yönlendirir. Bu kod yeterli olacaktır? Düzgün çerez almıyor gibi görünüyor çünkü. Ben Nasıl ayarlanır olmadığını görmek için kontrol edebilirim? Ne istediğimi kurabiye biliyorum eğer daha iyisi, ben sadece bunu falan yapabilir?

Edit: Yani benim CURL komut et hakkını ziyaret ediyor? Web sitesi doğrulama için çerezleri setleri, ve benim cURL komut dosyası düzgün olanlar çerezleri alıp almadığını görmek istiyorum. Ben bunun için bir test var bilmek istiyorum, ve / veya ben sadece web sitesi için doğrulamak için bir çerez oluşturmak eğer bilmek istiyorum.

2 Cevap

Geçenlerde ben sunucuları arasında çerezleri geçmek için gerekli bir proje vardı, ve ben aynı dosyaya hem CURLOPT_COOKIEFILE ve CURLOPT_COOKIEJAR ayarını hile yaptığını bulduk.

Sadece uzak siteden çerezleri ayarlanır ediliyor olmadığını görmek isteyen ediyorsanız, bir metin editörü CURLOPT_COOKIEJAR dosyasına bakmak gerekir.

Bu size -v parametre atmak istiyorum kıvırmak komut satırı olsaydı. > Cookie: ile başlayan satırları dikkat edin.

Bu php versiyonu:

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

Bu bir tarayıcı olsaydı Ve ben bunlardan biri ile hata ayıklama olacaktır: Eğer Firefox, müfettiş {[(on Fiddler IE üzerinde, TamperData veya Firebug (net) kullanabilirsiniz 3)]} ve on Safari, ya da proxy formu "normal" bir tarayıcı tarafından gönderilen nasıl izlemek için herhangi bir tarayıcı ile.

Bunu kullanmak için php curl ayarlarsanız vekil yaklaşım işe yarayabilir.

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

Eğer sadece tek bir istek için çerezleri eklemek istiyorsanız sizin gibi bir satır yazabilirsiniz:

$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';

ama ben bir hakkında emin değilim, bu aynı hat boyunca daha fazla olabilir:

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..");