登录时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值找不到,再想请问下这样信息安全吗?怎么改进。

解决方案 »

  1.   

    cookie使用错误
    setcookie('username','username',time()+60*60*24*7);
    setcookie('id','id',time()+60*60*24*7);
      

  2.   

    应该不是cookie设置错误的问题吧,我换了也没有用啊
      

  3.   

    if(empty($c)){ ???
    不知道你前面省略掉多少代码
    既然是有条件进入 cookie 设置分支,那么你总得先确认该分支进入后再测试吧?
      

  4.   

    确认进入了该分支 设置完以后弹出有$_COOKIE['username']和$_COOKIE['id']的  跳转到首页后又没了
      

  5.   


    确认进入了该分支 设置完以后弹出有$_COOKIE['username']和$_COOKIE['id']的  跳转到首页后又没了
      

  6.   


    function loginsub(){
    if(empty($_POST['username'])) {
    echo '请填写用户名!';exit;
    }elseif (empty($_POST['password'])){
    echo '请填写密码!';exit;
    }
    $action=$_POST['action'];
    $data['username']=isset($_POST['username'])?addslashes($_POST['username']):"";
    $data['password']=isset($_POST['password'])?addslashes($_POST['password']):"";
    $user=D('User');
    $c=$user->where($data)->find();
    if(empty($c)){
    echo "不存在的用户名或者密码错误!";exit;
    }else{
    if(isset($_POST['checked']) && $_POST['checked']!=0){
    setcookie('username','ssssss',time()+60*60*24*7);
    setcookie('id','40',time()+60*60*24*7);
    }
    //判断是否是ajax请求
    if(isset($action)){
    echo "登陆成功";
    $c['updatetime']=time();
    $user->save($c);
    $_SESSION['user']=$c['username'];
    }else{
    $c['updatetime']=time();
    $user->save($c);
    $_SESSION['user']=$c['username'];
    header("Location:/");
    }
    }     
    }
      

  7.   


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

  8.   

    测试了,只要勾选了checked就能进入这里,而且在跳转前还输出了$_cookie的username id有值的
      

  9.   

    关闭浏览器在进首页就读取不到值 求解 
    ------cookie是保存在客户端随着你的浏览器关闭而消失的。
      

  10.   

    是不是浏览器禁用cookie了?用火狐浏览器的firebug查看一下
      

  11.   

    那这样怎么用COOKIE来保存登录信息  让用户自动登录啊
      

  12.   

    没有禁用的  禁用cookie的话我那session就没法用了,我可没设置什么session随url传递的啊
      

  13.   

    登陆成功以后,你是不是点了退出,然后关的浏览器啊?然后重新打开首页cookie就没了?
    如果没点退出,建议你换其它浏览器看看是不是同样的结果……
    一定不能登陆以后点退出再关浏览器哈~~
      

  14.   


    是这样的,每个浏览器存cookie的地方都是不一样的,所以登陆只能用同一款浏览器才有效