当前位置: 代码迷 >> PHP >> cookie封存登录信息 登录成功后setcookie是有值 关闭浏览器在进首页就读取不到值 求解
  详细解决方案

cookie封存登录信息 登录成功后setcookie是有值 关闭浏览器在进首页就读取不到值 求解

热度:96   发布时间:2013-01-02 13:08:44.0
cookie保存登录信息 登录成功后setcookie是有值 关闭浏览器在进首页就读取不到值 求解
登录时cookie保存
		
if(empty($c)){
echo "不存在的用户名或者密码错误!";exit;
}else{
        if(isset($_POST['checked']) && $_POST['checked']!=0){
setcookie('username',$c['username'],time()+60*60*24*7);
setcookie('id',$c['id'],time()+60*60*24*7);
}
//判断是否是ajax请求
if(isset($action)){
echo "登陆成功";
$_SESSION['user']=$c['username'];
}else{
$_SESSION['user']=$c['username'];
header("Location:/");
}
}   

首页判断

    public function index()
    {
session_start();
print_r($_COOKIE);
if(isset($_COOKIE['id']) && isset($_COOKIE['username'])){
echo $_COOKIE['username'];exit;
$_SESSION['user']=$_COOKIE['username'];
}
        $this->display();
    }

cookie值找不到,再想请问下这样信息安全吗?怎么改进。
------解决方案--------------------
cookie使用错误
setcookie('username','username',time()+60*60*24*7);
setcookie('id','id',time()+60*60*24*7);
------解决方案--------------------
if(empty($c)){ ???
不知道你前面省略掉多少代码
既然是有条件进入 cookie 设置分支,那么你总得先确认该分支进入后再测试吧?
------解决方案--------------------

你看看这里是否执行。
if(isset($_POST['checked']) && $_POST['checked']!=0){
            setcookie('username','ssssss',time()+60*60*24*7);
            setcookie('id','40',time()+60*60*24*7);
        }

------解决方案--------------------
关闭浏览器在进首页就读取不到值 求解 
------cookie是保存在客户端随着你的浏览器关闭而消失的。
------解决方案--------------------
登陆成功以后,你是不是点了退出,然后关的浏览器啊?然后重新打开首页cookie就没了?
如果没点退出,建议你换其它浏览器看看是不是同样的结果……
一定不能登陆以后点退出再关浏览器哈~~
------解决方案--------------------
设置cookie的 path看看,
  相关解决方案