0

こんにちは皆さん、私は php wordpress サイトで変数セッションを宣言しましたが、ナビゲーションがない状態で 5 分後に値を失いましたが、セッションはまだアクティブであり、php.ini の session.gc_maxlifetime はデフォルトの 1440 秒 (24 分) に設定されています。 . ここに私のコードがあります:

public function __construct() { 

    echo '<script>console.log("0: '.session_status().'")</script>'; 

    if ( ( $_SESSION['logged'] != null ) && (isset($_SESSION['logged'])) )
    {

        self::$profile = $_SESSION['logged'];   
        self::$favoriteTeam = self::$profile->favorite_team;

        echo '<script>console.log("1: '.self::$profile->fb_user_id.'")</script>';   
        echo '<script>console.log("2: '.self::$profile->favorite_team.'")</script>';    
        echo '<script>console.log("3: '.self::$favoriteTeam.'")</script>';      

    } 

}


public function(){ $_SESSION['logged'] = self::$profile = $user;    }

更新:これはワードプレスプロジェクトであり、デバッグしようとするとセッション変数に保存されるコンテンツであることを忘れていました:

echo '<script>console.log("1: '. $_SESSION['logged'].'")</script>'; 
4

2 に答える 2

1

その値を使用する前に、最初にセッションを開始しましたか

public function __construct() { 

    session_start();

    echo '<script>console.log("0: '.session_status().'")</script>'; 

    if ( ( $_SESSION['logged'] != null ) && (isset($_SESSION['logged'])) )
    {

        self::$profile = $_SESSION['logged'];   
        self::$favoriteTeam = self::$profile->favorite_team;

        echo '<script>console.log("1: '.self::$profile->fb_user_id.'")</script>';   
        echo '<script>console.log("2: '.self::$profile->favorite_team.'")</script>';    
        echo '<script>console.log("3: '.self::$favoriteTeam.'")</script>';      
    } 
}

public function()
{ 
        $_SESSION['logged'] = self::$profile = $user;    
}
于 2013-03-15T08:14:44.023 に答える
1

これは、Cookie の有効期間が短く設定されていることが原因である可能性があります。このリンクを確認してください

もお忘れなくsession_start()

セットを $user in に強制しないようにしてください():

if (isset($user) || !isset(self::$profile)) {
  $_SESSION['logged'] = self::$profile = $user;  
}
于 2013-03-15T08:15:17.610 に答える