smarty模板中读取不到Cookie的值觖办法

您所在的位置:网站首页 cookie取不到值 smarty模板中读取不到Cookie的值觖办法

smarty模板中读取不到Cookie的值觖办法

#smarty模板中读取不到Cookie的值觖办法| 来源: 网络整理| 查看: 265

例如

 代码如下复制代码if(!isset($_COOKIE['user'])) {    setcookie('user',$userName,time()+60*60*24*300); }     

在Smarty中,我们可以用她的保留变量来读取:

 代码如下复制代码{$smarty.cookies.user}    

至于用Smarty来设置Cookie变量就没有必要了,那是后端做的事!呵呵。

但刚才在调试的时候发现,用Smarty的保留变量居然读不到Cookie的值。我的代码是这样的:

 代码如下复制代码       用户登录    欢迎:      

 结果始终就是取不到loginuser这个Cookie,一直显示用户登录!

幸好有Chrome的开发人员工具,查看Ajax的加载的内容,查看元素的CSS等都是非常方便的!如下图

点击查看原图

原来是Path路径不对,最开始没有在setcookie()中加路径参数,直接就是

 代码如下复制代码setcookie('loginuser',$user,time()+30*24*60*60);   

  

而setcookie()的默认路径是当前目录下,如果其他目录要访问这个Cookie是访问不到的!

如果该参数设为 '/' 的话,cookie 就在整个 domain 内有效,如果设为 '/foo/',cookie 就只在 domain 下的 /foo/ 目录及其子目录内有效,例如 /foo/bar/。默认值为设定 cookie 的当前目录。

改成这样就可以了:

 代码如下复制代码setcookie('loginuser',$user,time()+30*24*60*60,'/'); 

   

虽然这个很简单,其实就是个路径的问题



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3