解决: 的耶。除了你写的Drew之外,我发现了这个: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读取文件,暂停进行计算/步骤,然后发布字段?还有更好的方法吗?
答案 0 :(得分:0)
令牌可能不再好用,因为它与访问站点时设置的会话cookie相关联。由于file_get_contents
没有Cookie跟踪,因此您应该使用cURL请求初始网址,获取令牌,进行计算,然后再次使用cURL进行回复。
要让cURL跟踪Cookie,请使用CURLOPT_COOKIEFILE
和CURLOPT_COOKIEJAR
选项作为cURL句柄。
$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登录各种网站并执行操作;查看代码可能对您有所帮助。