我创建了一个登录页面,我使用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();
答案 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
}