0

解决了: 耶。除了你写的德鲁,我发现这个:http: //www.smooka.com/blog/2009/07/24/maintaining-php-session-when-using-curl/session_write_close(); 在初始化下一组之前。现在我只需要弄清楚 AJAX/jquery,因为看起来我无法在会话中注册资源变量(例如 Curl 的句柄)。


我想使用 cURL 登录网站。他们的登录过程使用了一个令牌,我可以使用 file_get_contents() 对其进行解析。但是,当我尝试使用 cURL 再次访问该站点时,令牌不再有效。有没有办法使用 cURL 读取文件,暂停进行计算/步骤,然后发布字段?有没有更好的办法?

4

1 回答 1

0

该令牌可能不再有效,因为它与您访问该站点时设置的会话 cookie 相关联。由于file_get_contents没有 cookie 跟踪,您应该使用 cURL 请求初始 URL,获取令牌,进行计算,然后再次使用 cURL 回发。

要让 cURL 跟踪 cookie,请使用 cURL 句柄的CURLOPT_COOKIEFILECURLOPT_COOKIEJAR选项。

$cookies = '/tmp/cookies.txt';  // path to cookie file
$ch = curl_init('http://site.com');
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
//...
$res = curl_exec($ch);

// grab token here...

// do calculations here...

curl_setopt($ch, CURLOPT_URL, 'http://site.com/next-url');

$res = curl_exec($ch); // execute next request on same handle

这是我的一些其他答案,它们使用 cURL 登录各种网站并执行操作;查看代码可能对您有所帮助。

于 2012-09-21T18:01:07.307 回答