因此,我正在创建一个脚本,该脚本将自动登录到远程站点。它按预期工作,但当用户浏览远程站点中的任何页面时,它会不断要求用户再次登录。
如何防止这种情况?这可能吗?这是当前的代码:
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL=>$url,
CURLOPT_HEADER=>false,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_FOLLOWLOCATION=>true,
CURLOPT_POST=>true,
CURLOPT_POSTFIELDS=>$login,
CURLOPT_COOKIEFILE=>$rootPath.'/tmpfile/cookie.txt',
CURLOPT_COOKIEJAR=>$rootPath.'/tmpfile/cookie.txt'
));
$content = curl_exec($ch);
答案 0 :(得分:0)
您的代码似乎可行。但大多数情况下常见的错误是在制作第二个之前没有关闭卷曲手柄。关闭它,然后再重新初始化。
curl_close($ch);
如果这仍然无法解决您的问题,那么您可以调试代码以便执行以下操作。
1)检查cookie.txt文件中的内容。您可以在登录请求之后打印文件的内容。
2)运行启用了详细模式的脚本,以查看为用户浏览页面发送的请求。
CURLOPT_VERBOSE => true,
3)您也可以手动从文件(或浏览器)复制cookie,并将其用于“用户浏览”请求,并检查cookie是否有效。
CURLOPT_HTTPHEADER => array("Cookie: session-x=hello-kookie"), // example