0

我有一个校内交易网站。该站点正在使用会话登录系统。我想在登录系统中添加 cookie。但是,由于我从未使用过 php cookie,因此由于某种原因系统无法正常工作。实际上没有记住(使用会话)系统可以正常工作,但它不适用于 cookie。

这是我在递增之前的课程:

class LoggedUser{
public static function GetUserId(){
    return $_SESSION['LoggedUser']['Id'];
}
public static function GetUserEmail(){
    return $_SESSION['LoggedUser']['Email'];
}
public static function LogInUser(
        $user_id,
        $user_email,
    ){
        $_SESSION['LoggedUser'] = array();
        $_SESSION['LoggedUser']['Id'] = $user_id;
        $_SESSION['LoggedUser']['Email'] = $user_email;

}
public static function IsUserLogged(){
    $result = false;
    if(isset($_SESSION['LoggedUser']))
        $result = true;
    return $result;
}
public static function LogOutUser(){
    unset($_SESSION['LoggedUser']);
}

}

递增后:

class LoggedUser{
public static function GetUserId(){
    if(isset($_COOKIE['LoggedUserId']))
        return $_COOKIE['LoggedUserId'];
    return $_SESSION['LoggedUser']['Id'];
}
public static function GetUserEmail(){
    if(isset($_COOKIE['LoggedUserId']))
        return $_COOKIE['LoggedUserEmail'];
    return $_SESSION['LoggedUser']['Email'];
}
public static function LogInUser(
        $user_id,
        $user_email,
        $remember
    ){
    if($remember == true){
        setcookie("LoggedUserId", $user_id, time()+60*60*24*30);
        setcookie("LoggedUserEmail", $user_email, time()+60*60*24*30);
    }
    else{
        $_SESSION['LoggedUser'] = array();
        $_SESSION['LoggedUser']['Id'] = $user_id;
        $_SESSION['LoggedUser']['Email'] = $user_email;
    }
}
public static function IsUserLogged(){
    $result = false;
    if(isset($_COOKIE['LoggedUserId']))
        $result = true;
    if(isset($_SESSION['LoggedUser']))
        $result = true;
    return $result;
}
public static function LogOutUser(){
    unset($_COOKIE['LoggedUserId']);
    unset($_COOKIE['LoggedUserEmail']);
    unset($_SESSION['LoggedUser']);
}

}

你知道为什么系统不能使用 cookie 吗?

4

1 回答 1

1

登录 PHP 文件是否在子目录中?

如果是这样,在 set cookie 命令中添加一个起始目录

setcookie("LoggedUserId", $user_id, time()+60*60*24*30, "/"); 
于 2012-11-04T10:22:17.507 回答