0

私はキャンパス内の取引 Web サイトを持っています。サイトはログイン システムにセッションを使用しています。ログインシステムにクッキーを追加したかった。しかし、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 に答える