如何让 cURL 在执行后“删除 cookies”?

问题描述 投票:0回答:3

我正在测试我的网站的 cURL,并且我正在尝试使 cURL “清除缓存”,以便重新生成会话 cookie。

所以我有一个index.php和一个login.php。 我使用正确的凭据执行 POST 索引,然后按预期重定向到 login.php。 然后,我尝试“清除缓存”并cURL到login.php。 我期望得到一个 302(重定向)到 index.php,但我得到一个 200 OK...

我正在使用这些设置来尝试清除缓存:

$cookiefile = "d://cookie.txt";
curl_setopt($curl, CURLOPT_FRESH_CONNECT , 0);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookiefile); 
curl_setopt($curl, CURLOPT_FRESH_CONNECT , 1);

谢谢!

php curl
3个回答
9
投票

如果您想清除cookie,您应该取消链接该文件

unlink($cookiefile);
之后,您可以在没有旧cookie的情况下再次登录。

锁好。


0
投票

删除名称为

$cookiefile
的文件。


0
投票

要删除当前卷曲句柄中的cookie,请执行

curl_setopt($curl, CURLOPT_COOKIELIST, 'ALL');

引用文档:

Cookie 字符串(即 Netscape/Mozilla 格式的单行,或常规 HTTP 样式的 Set-Cookie 标头)将该单个 Cookie 添加到内部 Cookie 存储中。 “ALL”会删除内存中保存的所有 cookie。 “SESS”会删除内存中保存的所有会话 cookie。 “FLUSH”将所有已知的cookie写入CURLOPT_COOKIEJAR指定的文件中。 “RELOAD”从 CURLOPT_COOKIEFILE 指定的文件中加载所有 cookie。

© www.soinside.com 2019 - 2024. All rights reserved.