Maison >développement back-end >tutoriel php >php设置cookie之后无法获取
情况是这样的,我写了个用户登录页面,前台登陆页 login.php 后台处理页login2.php
用户在前台输入用户名和密码,第一次能登陆,登陆之后再退出来,然后再次登陆的话却出问题了,用户名和密码都对了,后台验证用户密码都正确提示登录成功,但是马上又退出来了,因为$username=$_COOKIE["username"]为空,这是怎么回事呢?
第一次登陆的话设置cookie如下:
setcookie("username",$username,time()+3600,"/");
后台文件是先验证用户名和密码是否匹配,匹配的话就提示登录成功,然后获取$username=$_COOKIE["username"],获取到了就显示该用户的信息
第一次登录是可以的,但是退出之后再次登陆的话$username=$_COOKIE["username"]获取的$username为空
大半夜的...
按说是不会出问题的
正常的流程 登录时去匹配用户名和密码,匹配成功写cookie,而非去读.
需要显示是否登录的地方调用这个$_COOKIE["username"]来验证是否登录 你看看流程对不?
这个是用print_r($_COOKIE)输出的内容
Array( [username] => [lasttime] => [Hm_lvt_40766697e0a5e9d980159040fbbbbea4] => 1375276361,1375276748,1375276810,1375284629 [Hm_lpvt_40766697e0a5e9d980159040fbbbbea4] => 1375286309 [username1] => fengfei [lasttime1] => 1375354872 [bdshare_firstime] => 1375275427220 [fip] => visited)
你这个username1 有东西...
不如你贴出你的代码看看....
因为正常来说是不会出问题的所以没看出来你的问题在哪里,大半夜没有高手在我们来慢慢分析你的原因吧...
改用 var_dump($_COOKIE) 看一下
因为用 parint_r 看到的 username 是空的,但是 setcookie("username",$username,time()+3600,"/"); 中 $username 为空的话,就是删除 username 项。那么就不会再看到 username 项了
很看好看[size=24px]
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
[/size]已予以