使用cURL阅读,完成一些步骤,然后发布

时间:2012-09-21 17:21:01

标签: php post curl login readfile

解决: 的耶。除了你写的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读取文件,暂停进行计算/步骤,然后发布字段?还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

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

要让cURL跟踪Cookie,请使用CURLOPT_COOKIEFILECURLOPT_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登录各种网站并执行操作;查看代码可能对您有所帮助。