PHP 5中Cookie无法保存问题求助
兄弟,我给你简单捋清楚这俩问题:
一、SQL查询内容能不能设为Cookie值?
可以,但有几个关键限制得注意:
- Cookie的值只能是字符串类型:如果你的SQL结果是单个字符串/数字(比如用户名、用户ID),直接转成字符串就能存;如果是数组或者复杂对象,得先用
serialize()序列化,或者json_encode()转成JSON字符串,取的时候再用unserialize()或json_decode()转回来。 - Cookie有大小上限(一般是4KB左右):如果SQL查出来的内容太大(比如大段文本、几十条数据),就别往Cookie里塞了,浏览器会直接截断甚至拒绝保存。
- 敏感信息绝对不能存Cookie:比如用户密码、手机号这类隐私内容,Cookie存在客户端,很容易被窃取,要存敏感数据用PHP的Session才安全。
二、顺便提下PHP5里Cookie存不上的常见小原因
你说遇到Cookie无法保存的问题,大概率是踩了这些坑:
setcookie()必须放在任何输出之前:比如你先写了<html>标签、空格,或者用echo输出了内容,再调用setcookie(),PHP5里HTTP头已经发送,Cookie就设置失败了。- 检查Cookie的参数:比如路径设成
/才能让全站都能读到这个Cookie;域名要和当前网站的域名一致,不然浏览器不认。 - 看看浏览器设置:是不是禁用了Cookie,或者开了隐私模式,这种情况也存不上Cookie。
内容的提问来源于stack exchange,提问作者Firel
相关产品推荐
相关产品推荐

