cURL:Cookieが適切に設定されているかどうかを確認するにはどうすればよいですか?

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

WebサイトはCookieを設定してからリダイレクトします。このコードで十分ですか? Cookieを適切に取得していないようです。設定されているかどうかを確認するにはどうすればよいですか?さらに良いことに、どのCookieが必要かがわかっていれば、それだけを作成できますか?

編集:私のCURLスクリプトはWebサイトにアクセスしますか? Webサイトで検証用のCookieが設定されています。cURLスクリプトがこれらのCookieを適切に受信しているかどうかを確認したいと思います。そのためのテストがあるかどうか、および/またはCookieを作成してWebサイトで検証できるかどうかを知りたいのです。

役に立ちましたか?

解決

最近、サーバー間でCookieを渡す必要があるプロジェクトがあり、 CURLOPT_COOKIEFILE CURLOPT_COOKIEJAR の両方を同じファイルに設定するとうまくいくことがわかりました。

リモートサイトからのCookieが設定されているかどうかだけを確認したい場合は、テキストエディターで CURLOPT_COOKIEJAR ファイルを確認できるはずです。

他のヒント

これがコマンドラインcurlである場合、 -v パラメーターでスローします。 >で始まる行に注意してください。 Cookie:

このphpバージョンは次のとおりです。

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

これがブラウザの場合、これらのいずれかでデバッグします。フィドラーを使用できますIEでは、 TamperData または FirebugのFirebug(ネット)、インスペクター Chrome および Safari 、またはプロキシをブラウザで使用して、フォームが「通常」で送信される方法を確認します。ブラウザ。

PHPのcurlを使用するように設定すると、プロキシアプローチが機能する場合があります。

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

1つのリクエストにCookieを追加するだけの場合、次のような行を記述できます。

$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