关于js的cookie设置问题
我用的是CI框架,我的业务是这样子的:做一个网站,有中文和英文两个版本,通过点击切换按钮来设置cookie,然后PHP读取cookie来判断读取中文数据还是英文数据。但是查看了chrome的cookie,有的网页却发现有两个相同name值的cookie,只是路径不一样。截图如下:
以下是PHP读取的代码,用的是ci框架本身的方法:
$lang = trim($this->input->cookie('lang', true));
以下是js初始化页面的时候设置的代码:
var cookie_lang = getCookie('lang');
if (cookie_lang == null) {
setCookie('lang', 'ch')
}
以下是点击按钮切换cookie的代码:
var lang = getCookie('lang');
if (lang == 'ch' ) {
setCookie('lang', 'en')
} else if (lang == 'en' ) {
setCookie('lang', 'ch')
}
以下是设置cookie的函数:
function setCookie(name,value) {
var expiredays = 7;
var ExpireDate = new Date ();
ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
var host = document.domain;
document.cookie = name + "="+ escape (value) + "; expires=" + ExpireDate.toGMTString() + "; domain=" + host
+ "; path=/";
}
以下是获取cookie的函数:
function getCookie(name) {
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)) {
return unescape(arr[2]);
} else {
return null;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无论实在php层面setcookie还是在js层面setcookie的时候,全部将path设置为/根路径;然后你再来测试下看看是不是都好了;