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

WBOY
풀어 주다: 2016-06-23 14:00:16
원래의
1054명이 탐색했습니다.

大家好, 最近在做一个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确定每次都有值传入?

我也遇到这个问题

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿