当前位置:Gxlcms > PHP教程 > php验证登陆cookie出现的一个很奇怪的问题,也许大家都没注意。求指导!

php验证登陆cookie出现的一个很奇怪的问题,也许大家都没注意。求指导!

时间:2021-07-01 10:21:17 帮助过:5人阅读

大家好, 最近在做一个php网站 废话不多说 直接代码:
登陆成功添加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确定每次都有值传入?

我也遇到这个问题

人气教程排行