php 验证登陆cookie出现的一个很奇怪的问题,也许大家都没注意。求指导!
登陆成功添加cookie:
setcookie("user",$Email,time()+24*60*60);
header("location:http://website.com/MyProfile.php");
进入页面验证cookie:
if (isset($_COOKIE["user"]))
//echo $_COOKIE['user'];
{
点击退出,删除cookie:
setcookie("user","",time()-24*60*60);
("location:http://website.com/index.php");
问题是这样的:
第一次登陆可以正常登录,进去以后点击退出(清除cookie)。然后再登陆,MyProfile页面就读不到cookie(确定密码正确)。第二次就可以正常登陆。 我已经测试过,设置和删除都没问题,是不是哪一点我没有注意到? 也许是header函数的问题?
求解答
回复讨论(解决方案)
没人遇到类似的问题么?
更换过其他浏览器试验吗?cookie 用得比较少,没啥实际经验
更换过其他浏览器试验吗?cookie 用得比较少,没啥实际经验
后台也是这样设置的 , 就没有问题 我在网上看的说header跳转 前不能有输出。 但是第一次cookie确实设置了 跳转后第一次没有读到 第二次就可以了 很奇怪的问题
header和setcookie没有冲突。
是在这两个操作前不能有其他输出。
建议对比代码检查。
建议换下其它的浏览器,测试前更新下缓存
是这样子的,
cookie 是要在新一页才生效的。
你设置的是第二次登录以后才会生效
第一次登录以后 楼上写错了
是这样子的,
cookie 是要在新一页才生效的。
那是不是中间加个空跳转 然后再到登陆成功页面就可以了呢
第一次登录以后 楼上写错了
也就是说cookie在登陆以后并没有设置 第二次才有效是吧 那中间加个跳转页面是不是能解决呢。 我试过在下一页好像是可以接收到值得
但是问题是: 第一次登陆没错误 直接成果了。 登陆成功以后我点logout, 登出以后再次登陆 就会显示没有设置cookie。 第二次登陆又好了。 我也不知道为什么
引用 7 楼 ci1699 的回复:
是这样子的,
cookie 是要在新一页才生效的。
那是不是中间加个空跳转 然后再到登陆成功页面就可以了呢
我做了个空跳转,但是还是获取不到cookie 咋回事啊
求指导
换过其他浏览器测试了吗?
换过其他浏览器测试了吗?
都试过了, 求指导啊。 难道大家都没遇到过么
$Email确定每次都有值传入?
我也遇到这个问题
上一篇: uploadtoken函数定义与用法汇总
下一篇: php连接mysql数据库问题