PHP CURL Cookie第二次调用时不保留


PHP CURL Cookie not kept when cookie called a second time

我有一个php页面,它使用CURL登录到另一个页面,获取cookie,然后使用它来调用另一个页面。在新的页面上,可以再次调用php来调用相同的页面,但使用不同的参数。这个代码都适用于我的免费网站托管。然而,当我把它移动到我的客户端网页工作为第一次调用(即cookie被创建和使用良好),但不当我再次调用一个新的参数页面(即cookie不被重用)。代码是在wordpress和所有细节几乎相同(在我复制的主题,插件和数据库从一个网站到另一个方式)。造成这种差异的原因是什么?我该如何改变这种差异?目前我能看到的唯一区别是查看网页的响应,不工作的网站将缓存控制设置为无缓存和age=0。这是原因吗?如果是,我该如何改变?

尝试手动为curl操作分配一个cookiejar/文件:

$cookie_file = "/tmp/cookie/cookie1.txt";
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);

curl将在开始请求之前从cookiejar中读取cookie,并将接收到的cookie写入从响应中获得的cookiefile中。

该路径必须能够被PHP执行的用户访问和读写。您应该使用完整路径,而不是相对路径。

Edit: Marc B在PHP, Curl, curl_exec(), curl_close()和cookies中写cookies被绑定到Curl句柄。所以只要你不关闭手柄卷曲应该小心饼干。

如果两个请求共享同一个curl句柄,那么您可能不需要cookiejar/文件。