0

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

因此 - 我目前正在导航到登录页面,然后抓取页面以检索唯一的 POST url(我成功地做到了),然后制定一个 POST 请求并将其发送到唯一的 URL。但它不起作用,我认为问题要么与 cookie 有关,要么与我没有保持会话打开的事实有关......

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

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

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

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

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

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

抱歉-我的解释很差,如果人们不理解,我会尝试澄清。

非常感谢 :)

4

1 回答 1

3

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

为了实现您想要的,您可以使用 cURL 的功能将 cookie 保存在一个文件中,您可以稍后将其与您的请求一起发送。要创建或使用此文件,请执行以下操作:(您要保存 cookie 的文件的路径在curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieJar);哪里)。$cookieJar

并将 cookie 与您的请求一起发送,请执行以下操作:

curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieJar);

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

于 2012-05-26T12:08:58.863 回答