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

WBOY
Lepaskan: 2016-06-23 14:00:16
asal
1012 orang telah melayarinya

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

我也遇到这个问题

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!