php - 使用 PHP curl 获取 cookie
问题描述
我正在尝试使用curl
. 以下是文件:
get_cookie.php:
...
$curl = curl_init("http://.../set_cookie.php");
$data = array('fname'=>"John", 'lname'=>"Brown");
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
...
$response = curl_exec($curl);
...
// get cookies
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $response, $matches);
$cookies = array();
foreach($matches[1] as $item) {
parse_str($item, $cookie);
$cookies = array_merge($cookies, $cookie);
}
echo "cookies recived: <br>";
var_dump($cookies);
set_cookie.php:
...
if (isset($_POST["fname"])) {
setcookie("usr_name", "user_".$_POST["fname"], time()+60*60);
...
}
但是在 curl 响应中我没有得到任何 cookie -$cookies
数组是空的(我已经检查过 -$_POST["fname"]
已设置 - POST 数据已成功发送)。当我set_cookie
以标准方式调用它时 - 从浏览器中我得到所需的usr_name
cookie。有什么问题curl
?
解决方案
您是否尝试过curl_getinfo($curl, CURLINFO_COOKIELIST)
而不是手动解析响应来获取 cookie?
推荐阅读
- reactjs - 如何在引导导航栏中使用反应路由器 dom
- xpages - 您可以多次将相同的自定义控件添加到 xpage
- java - 使用 InetAddress 收集网络接口
- arm - 为 arm 交叉编译 iptables 的问题
- flutter - 如何将图像数据从 FirebaseStorage 保存到数据库并在 Flutter 中使用 CircleAvatar 检索它
- python - 在 Pandas 数据框中使用 groupby 计算
- linux - sed在linux中为字符串添加前缀的用法
- java - 安装后运行时Java“handshake_failure异常”,但从intelliJ运行时不会
- python - 如何在 Celery 中实现已经编写好的 python 脚本
- html - 只刷新一次页面