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 根本拿不到?
请问怎么回事呢?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3

谢谢整理格式.刚才看Markdown的代码部分.可能没用过,感觉说的好乱.就看到 ```` 这样的符号.但是试了,没效果.

7年前 评论

没人知道原因吗?

7年前 评论

设置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

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!