用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4964|回复: 6
收起左侧

[已解决] ci2.0里,使用php的cookie函数,cookie无效了.

[复制链接]
发表于 2011-3-25 14:53:46 | 显示全部楼层 |阅读模式
C层登陆:
PHP复制代码
setcookie ( "uid", $result->uid, time () + 5184000 );
setcookie ( "username", $result->username, time () + 5184000 );
复制代码

V层判断:
PHP复制代码
if(isset($_COOKIE['username'])){
                                $u = $_COOKIE['username'];
                                echo '123'.$u;
                                }
复制代码

到了V层cookie就无故消失了......

但是我如果不跳回V层,直接在C层输出的时候cookie还是存在的
PHP复制代码
setcookie ( "uid", $result->uid, time () + 5184000 );
                                setcookie ( "username", $result->username, time () + 5184000 );
                                if(isset($_COOKIE['username'])){
                                $u = $_COOKIE['username'];
                                echo '123'.$u;
                                }
复制代码


这是怎么回事???
发表于 2011-3-25 15:04:56 | 显示全部楼层
注意 cookie 的 path !!!!
都设置 path 为 "/" 即可。
 楼主| 发表于 2011-3-25 15:21:26 | 显示全部楼层
回复 2# Hex


    果然........
还想请教下H大
我现在的2.0的ci session好像和我的1.72的ci session有冲突
就是我如果在1.72的项目里面登陆的话,2.0的项目里原本登陆后的状态会变成未登陆
反之亦然,就是只要其中一个登陆,另一个版本的项目里的登陆状态就会被清除.这是什么原因?
发表于 2011-3-25 15:34:56 | 显示全部楼层
域名不同就不会冲突,否则就要使用不同的 cookie 名字前缀才可以。
这个和 CI 无关,这是常规网站开发知识。
发表于 2011-8-28 18:03:28 | 显示全部楼层
Hex 发表于 2011-3-25 15:04
注意 cookie 的 path !!!!
都设置 path 为 "/" 即可。

我今天也遇到了同样的问题。

可是,为什么要都设置成 "/" 呢?
发表于 2011-8-28 23:12:11 | 显示全部楼层
zhaoyulee 发表于 2011-8-28 18:03
我今天也遇到了同样的问题。

可是,为什么要都设置成 "/" 呢?

代表根目录下所有子文件夹中的文件都能够继承并使用该COOKIE
否则默认只是在SETCOOKIE的那个文件的当前目录和子文件夹中才能使用
发表于 2011-8-29 11:29:21 | 显示全部楼层
落叶之影 发表于 2011-8-28 23:12
代表根目录下所有子文件夹中的文件都能够继承并使用该COOKIE
否则默认只是在SETCOOKIE的那个文件的当前目 ...

哦,是这样,谢谢~

本版积分规则