PHP curl $_COOKIE ['key'] 值的问题
遇到一个奇怪的问题,希望有人帮忙解决一下.
有2个php文件.分别是 test1.php 和 test2.php
其中 test1.php的内容如下
<?php
setcookie('abc','123456');
$a='888';
//$a=$_COOKIE['abc'];//这行是疑惑的地方.
echo $a;
?>
在浏览器访问 test1.php,要么是 888, 要么是 123456
test2.php内容
<?php
$ch=curl_init();
curl_setopt($ch,curlopt_url,'http://x.com/test1.php');
curl_setopt($ch,curlopt_returntransfer,1);
$output=curl_exec($ch);
curl_close($ch);
?>
在浏览器运行test2.php时,仅仅只能拿到888, 这个 123456 根本拿不到?
请问怎么回事呢?
关于 LearnKu
谢谢整理格式.刚才看Markdown的代码部分.可能没用过,感觉说的好乱.就看到 ```` 这样的符号.但是试了,没效果.
没人知道原因吗?
设置cookie是要在这次访问后通过浏览器在本地设置cookie,而获取cookie值是在访问时由浏览器将本地的cookie发送到服务器端并由逻辑获取到。现在设想下你第一次访问
test1.php本地并没有cookie,所以获取到cookie值。$a的值肯定为之前设置的变量值888,但是这一次setcookie('abc','123456')在本地设置了一个键名为'abc,值为123456的cookie。再一次访问test1.php时就会将此cookie发送到服务器端,所以此时$_COOKIE['abc']能获取到值并为cookie的值123456。所以你有时候获取到888,有时候是123456.再解释下第二个问题,为什么curl访问只能获取到888。因为你curl访问时并没有带上cookie值,所以你在服务器端不可能获取到cookie值,所以一直得到的都是变量值888。