做一个登录界面,自动记忆用户名的功能
if(empty($_post['chkremember'])) {
//用户没有选择单选框
if(!empty($_cookie['username'])){
setcookie('username','',time()-100);
}
}else{
//用户选择单选框
setcookie('username',$username,time()+7*24*3600);
}
当用户选了记住用户名的单选框时,cookie已经保存,在c:\users\administrator\appdata\roaming\microsoft\windows\cookies菜单下多了一个cookie文件(administrator@localhost[1].txt),内容也是正确的
但是读取cookie却不成功,每次都是返回控制
' />
直接打印cookie数组 print_r($_cookie);
得到的也是空数组
求教这是怎么回事?
是不是cookie保存路径和读取路径不一致?
回复讨论(解决方案) 应该是每次都返回空值,我打错字了。
1、
setcookie('username',$username,time()+7*24*3600);
和
getcookieval(username)
必须是在不同的 http 会话中进行的
2、你在设置 cookie 时 没有指定路径
所以 cookie 只在执行 setcookie 的程序所在路径下有效
如果执行 getcookieval 的程序不在同一路径下,则不会取到值
setcookie('username',$username,time()+7*24*3600, '/');
这样才可以使 cookie 变量 username 在整个网站中有效
谢谢大侠,得救了!