转载请署名 achieverain,谢谢 经常见人问PHP程序无法设置cookie。下面把我遇见过的情况都说一遍 1 PHP程序在执行setcookie之前有输出。 解决 : 把setcookie之前的程序检查一下,是否在PHP代码<?php 之前有回车或者空格。 或者: 在程序的最开头执行一次 ob_start(); 2 PHP cookie生命太短,还未生效就已死亡 此项问题的查看可以在PHP程序中执行 time();看看服务器时间与本地时间差是否超过生存时间 解决 :修改服务器时间或增长cookie生命。 3 PHP cookie作用域不对 先把cookie的作用域设置成 / ,看是否有问题。如果问题解决,再设置成正确的作用域 4 用户禁止使用cookie 这个不是程序的错了。不过可以使用带参数url传递cookie的值或者session来解决。 5 其他问题 可以在本文跟贴,http://bbs.chinaunix.net/viewthread.php?tid=930393&extra=page%3D1 我会逐步添加,或者给我来信也可以 jstel(#)126(.)com 6 感谢三楼的fjytzh 的补充,这种情况多出在比较老点的程序中。这种效果相当于register_global=on. 好多程序(例如:论坛)都有把 $_COOKIE , $_GET , $_POST 的值 extract 出来 然后 再 $_COOKIE ,$_GET , $_POST 等值 unset 掉. 这种事情比较水,我也没有预防的办法。只有在开发的时候注意。 当然后面用$_COOKIE['XXXX']访问就访问不到咯 7 最白痴的问题 cookie值为空,这个怎么做就不用我说了吧 |