Cookie重定向消失(PHP)

时间:2014-10-05 20:21:21

标签: php cookies

我创建了一个登录页面,我使用cookie作为自动登录选项。 出于某种原因,当我试图测试它时(进入登录页面 - 用于测试重定向) 它不起作用。 当我打印$ _COOKIE时,我只看到' PHPSESSID'。

这是我的代码:

public function index(){

    if (isset($_COOKIE[$_SESSION[SESSION_KEY.'id']]) && isset($_COOKIE[$_SESSION[SESSION_KEY.'password']]))
    {

        $login = $_COOKIE[$_SESSION[SESSION_KEY.'id']];
        $password  = 1;

    }
    else if(isset($_POST['login']) && isset($_POST['password']))
    {
            $password = $_POST['password'];
            $login = $_POST['login'];            
    }    
    if(isset($login) && isset($password))
       {        

            $query = "SELECT * FROM myDB WHERE id= '{$login}' AND Password = '{$password}'";
            $result = $this->db->query($query)->result();

            if(count($result) == 0 || count($result) > 1){

                $this->load->view('admin/login');
            }elseif(count($result) == 1){

                $_SESSION[SESSION_KEY.'id'] = $result[0]->id;
                $_SESSION[SESSION_KEY.'password'] = 1;

                if (isset($_POST['remember']) && isset($_POST['remember']) == 1)
                {
                    setcookie($_SESSION[SESSION_KEY.'id'], $login, time()+60*60*24*10, base_url());
                    setcookie($_SESSION[SESSION_KEY.'password'], $password, time()+60*60*24*10, base_url());     
                }                       
                redirect('customers/customers_list');  
            }
        }
        else {
            $this->load->view('admin/login');
             return;
        }
}

可能是什么问题?所有的饼干在哪里? 是的,我有session_start();

1 个答案:

答案 0 :(得分:0)

尝试在用户第一次登录时使用php set_cookie()函数,例如     setcookie(“用户名”,$ _POST ['用户名'mktime()+(84600 * 30),“/”) 然后获取用户名cookie(如果存在),这样您就可以使用任何所需的存储值,例如

if (isset($_COOKIE ['username' ])) {           
    //if the cookie exist allow user login e.g    
    $_SESSION['login']= 'true';
}
else { 
    //if a cookie doesn't exist
    echo "Oops you have to log in!"
    //then you display login form
}

然后在另一页上你有类似

的东西
session_start();
if ($_SESSION['login']='true') {
    //Then you display the page
}
else { 
    //redirect to login page
}