【问题标题】:How to get Cookies in CURL request using PHP?如何使用 PHP 在 CURL 请求中获取 Cookie?
【发布时间】:2013-06-07 10:56:27
【问题描述】:

我有两个文件:A.php 和 B.php。

A.php的内容:

<?php
$ch = curl_init();
curlsetopt($ch,CURLOPT_URL,'localhost/b.php');
curl_exec($ch);
?>

B.php的内容:

<?php
print_r($_COOKIE);
?>

加载 A.php 时不打印 COOKIES,而是直接加载 b.php 时打印。请帮助 谢谢

【问题讨论】:

  • 您没有在A.php 中打印结果。
  • 因为在执行 cURL 之前没有指定任何 cookie?
  • 当您从浏览器加载 B.php 时,任何 cookie 都将在您的本地浏览器会话中存储/读取。当通过 cURL 到 A.php 加载 B.php 时,B 会在浏览器会话中查找 cookie,而不是在本地浏览器会话中发出请求(cURL on localhost)。

标签: php cookies curl


【解决方案1】:

默认情况下,cURL 请求不发送 cookie。如果您想将脚本 a.php 中的所有 $_COOKIEs 传递给 b.php,请执行以下操作:

<?php

$cookie = array();

foreach ($_COOKIE as $key => $value) {
    $cookie[] = "{$key}={$value}";
};

$cookie = implode('; ', $cookie);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'localhost/b.php');
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
curl_exec($ch);

【讨论】:

    猜你喜欢
    • 2014-12-09
    • 2014-10-27
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2016-05-14
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多