【问题标题】:cURL: How do I know if my cookies are being set properly?cURL:我如何知道我的 cookie 设置是否正确?
【发布时间】:2009-11-26 19:03:20
【问题描述】:
$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);

网站设置 cookie,然后重定向。这段代码就够了吗?因为它似乎没有正确获取 cookie。如何检查它是否已设置?更好的是,如果我知道我想要什么 cookie,我可以自己做吗?

编辑:所以我的 CURL 脚本访问了该网站,对吗?该网站设置了用于验证的 cookie,我想查看我的 cURL 脚本是否正确接收了这些 cookie。我想知道是否有测试,和/或我想知道我是否可以创建一个 cookie 来验证网站。

【问题讨论】:

  • 我真的应该在发帖前对我的帖子进行校对。

标签: php curl


【解决方案1】:

我最近有一个项目需要在服务器之间传递 cookie,我发现将 CURLOPT_COOKIEFILE 和 CURLOPT_COOKIEJAR 设置为同一个文件可以解决问题。

如果您只是想查看是否设置了来自远程站点的 cookie,您应该能够在文本编辑器中查看 CURLOPT_COOKIEJAR 文件。

【讨论】:

    【解决方案2】:

    如果这是您在-v 参数中输入的命令行 curl。注意以> Cookie:开头的行。

    这个的php版本是:

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

    如果这是一个浏览器,我会使用以下其中一个进行调试:您可以在 IE 上使用Fiddler,在 Firefox 上使用TamperData 或Firebug (net),检查器on Chrome 和on Safari,或@987654326 @ 与任何浏览器一起观察表单是如何被“普通”浏览器提交的。

    如果你设置 php 的 curl 来使用它,代理方法可能会起作用。

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

    如果您只想将 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..");
    

    【讨论】:

    • 不幸的是,我想我对您的问题中具体不起作用的内容感到困惑?是不是您在 cookie 罐中收到了一个 cookie,然后您想检查您是否正在使用已设置的 cookie?然后我会使用详细或代理方法。
    猜你喜欢
    • 1970-01-01
    • 2014-07-07
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    相关资源
    最近更新 更多