PHP cURL cookies&保持会议开放

时间:2012-05-26 10:42:44

标签: php post curl

我在使用cURL时遇到了一些问题(使用PHP)。基本上我想登录并在网站上执行一些功能。这通常没问题,但是每次访问登录页面时,网站都会为登录页面生成一个唯一的URL以及一个动态/唯一的POST URL。

因此 - 我当前正在导航到登录页面,然后抓取页面以检索唯一的POST URL(我成功地做了这个),然后制定POST请求并将其分派给唯一的URL。虽然它不起作用,但我认为这个问题要么与cookie有关,要么就是我没有让会话保持开放......

首先,我不知道为什么没有保存cookie(但是它们仅用于那个浏览器会话,也许这可能是原因?)..我已经创建了一个存储cookie的测试页面工作......所以也许这不是我的问题。

其次,我不认为我会保持会议开放。我在打电话:

$curl = curl_init();然后抓取唯一的POST网址,然后调用$ch = curl_init($loginPostUrl);初始化我的POST请求,最后完成后

curl_close($ch);
curl_close($curl);

但是,我不认为这会在发出请求时保持初始会话开放(因此我检索到的POST网址无效..)

有人可以在同一会话中解释如何处理这些请求吗?

对不起 - 我的解释很差,我会试着澄清一下人们是否理解。

非常感谢:)

1 个答案:

答案 0 :(得分:3)

如果您使用cURL访问该页面,则Cookie不会存储在您的浏览器中。 这是正常的:脚本正在执行请求服务器端,这与浏览器处理cookie的方式无关。

要实现您的目标,您可以使用cURL将Cookie保存在文件中,以后可以随请求一起发送。 要创建或使用此文件,请执行:curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieJar);(其中$cookieJar是您要在其中保存Cookie的文件的路径。)

要发送cookie以及您的请求,请执行以下操作:

curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieJar);

我希望这能回答你的问题。