我有一个php页面,它使用CURL登录到另一个页面,获取cookie然后用它来调用另一个页面。在新页面上,可以再次调用php来调用相同的页面但具有不同的参数。这段代码都适用于我的免费网站托管网站。然而,当我将它移动到我的客户端网页时,第一次调用(即cookie已创建并使用正常),但是当我再次使用新参数调用该页面时(即不重用cookie)。代码在wordpress中,所有细节都几乎相同(就像我将主题,插件和数据库从一个站点复制到另一个站点一样)。差异的原因是什么?我将如何改变这种差异? 我目前看到的唯一区别是查看来自网页的响应,无效的网站将缓存控制设置为无缓存且age = 0。这是原因,如果是这样,我怎么能改变它?
答案 0 :(得分:0)
尝试手动为您的curl操作分配一个cookiejar /文件:
$cookie_file = "/tmp/cookie/cookie1.txt";
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
然后卷曲将在开始请求之前从cookiejar中读取cookie,并将收到的cookie写入它从响应中获得的cookief。
用户必须可以访问和读取/写入PHP执行的路径。您应该使用完整路径,而不是相对路径。
{p> 编辑: Marc B writes PHP, Curl, curl_exec(), curl_close() and cookies中Cookie被绑定到curl句柄。因此,只要你不关闭手柄卷曲就应该注意饼干。因此,如果两个请求共享相同的curl句柄,则可能不需要cookiejar / file。