php - session产生的cookie文件在本机的哪里?
怪我咯
怪我咯 2017-04-10 17:03:28
[PHP讨论组]

我做了一下测试,我在页面写上代码

setcookie('name','joe',time()+3600)

然后在win7系统本机路径里能找到一个名为cookie:administrator@localhost的文档文件,打开里面就存有namejoe的值,测试通过。

然后我把代码改成

session_start();
$_SESSION['age']=17;

访问页面,在相同路径下并没有发现session产生的cookie文件,但是在代码里添加上

echo COOKIE['PHPSESSID'];

输出76sds8f6s8s6,说明通过session确实生成了cookie文件,那么cookie文件在哪里?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
巴扎黑

概念上你有点混乱
首先,你每次请求无论你用不用$_SESSION,都会生成一个key为phpsessid的cookie,假设为76sds8f6s8s6
其次,你服务器端用$_SESSION存储key为age的值时,并不会对应的生成一个cookie到本地,而是在服务器端生成了SESS_76sds8f6s8s6类似的文件(取决于你的PHP.INI配置选项)
最终,你在另外一个页面想获取这个age的值,PHP是通过你本机的phpsessid值76sds8f6s8s6,在服务器端找到对应的SESSION文件中age的值

迷茫

你应该可以在name所在同一个文件里找到一个名字是phpsessid的cookie


换句话说, 你在哪里找到的name=joe, 你就可以在哪里找到PHPSESSID=76sds8f6s8s6

AGE存在于服务端,而客户端/浏览器是不知道有这个参数存在的

HTTP请求发送的时候,浏览器会自动带上PHPSESSID这个cookie,然后服务器会去找对应的session,session可能是一个文件,也可能存在于缓存或者数据库中,这取决于服务器端的配置,而默认情况下是临时目录下一个名为SESS_76sds8f6s8s6的文件,这个文件中会保存AGE=17这样一个参数

所以,不要企图在保存cookie的文件夹下找到session中的数据。

高洛峰

/windows/temp/

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号