【问题标题】:PHP cURL is not capturing all ASP.NET CookiesPHP cURL 未捕获所有 ASP.NET Cookie
【发布时间】:2013-12-27 03:27:15
【问题描述】:

尝试使用 PHP 和 cURL 自动登录到 ASP.NET 站点,但遇到了 cookie 问题。

当我在浏览器中签入时,初始登录页面存储了 5 个 cookie。分别是 ASP.NET_SessionId、__utma、__utmb、__utmc 和 __utmz

当通过 cURL 访问此页面时,cookie 文件仅存储一个 cookie:“ASP.NET_SessionId”

我参考了许多帖子并尝试了各种返回相同结果的 cURL 选项组合。

我不知道 ASP.NET cookie 如何工作或与 PHP 有何不同。任何帮助表示赞赏。

这是我的 php 代码:

$cookie_file_path = "tmp/cookie.txt";
$LOGINURL         = "https://godaddy.com"; 
$agent            = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1";

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HEADER,  1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);         
curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path); 
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path); 
curl_setopt($ch, CURLOPT_URL, $LOGINURL);
$content = curl_exec($ch); 
curl_close($ch);

echo '<textarea style="width:1000px; height:300px">'.$content.'</textarea>';

【问题讨论】:

    标签: php asp.net cookies curl


    【解决方案1】:

    __utma, __utmb, __utmc & __utmz 都是由 javascript 存储的 Google Analytics cookie,因此是在客户端创建的。

    所以没有办法通过 cURL / PHP 处理它们

    【讨论】:

    • 非常感谢您的评论!我担心这些 cookie,因为我无法使用帖子数据登录(下一步)。
    • 我怀疑他们会检查分析 cookie。您应该寻找隐藏的输入字段,例如,我可以看到他们得到了 __VIEWSTATE 和 __EVENTVALIDATION。 (myaccount.amsoil.com)
    • 我把它包含在帖子数据中......我仍然无法登录。由于这不是 cookie 问题,也许我应该使用我正在使用的实际代码创建另一个帖子,以找出我无法登录的原因。
    • @Jeppe 但是如何获取 ASP 会话 ID?
    • @Volatil3 这可以直接从 $_COOKIE['ASP.NET_SessionId'] 访问 - 阅读更多:php.net/manual/en/reserved.variables.cookies.php
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    • 2018-05-28
    • 2013-11-12
    • 2015-06-24
    • 2011-09-27
    • 2016-02-11
    相关资源
    最近更新 更多