2013-03-15 111 views
0

嗨,夥計們我在php wordpress站點中聲明瞭一個變量會話,但是在5分鐘沒有導航之後,它失去了值,但會話仍然是活動的,並且php.ini中的session.gc_maxlifetime設置爲默認1440秒(24分鐘)。這裏是我的代碼:PHP會話變量到期

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; } 

更新:我忘了提,這是一個WordPress的項目,是的,它保存到會話變量的內容,如果我嘗試調試:

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

這通常是C++或C#:$ _SESSION [ '登錄']!= NULL。在PHP中,這通常是isset($ _ SESSION ['logged']) – 2013-03-15 08:12:33

+0

好吧,我嘗試了一個簡單的代碼這樣http://www.kanasolution.com/2011/01/session-variable-in-wordpress/和會話變量持續超過5分鐘,所以我會尋找另一個解決方案...只保存一個布爾值並從數據庫加載detas。感謝所有 – 2013-03-15 10:39:04

回答

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;  
} 
+0

我現在就試試吧,session_start它是在索引頂部聲明的,我應該按照你的建議重新聲明嗎? – 2013-03-15 08:24:05

+0

仍然不起作用:( – 2013-03-15 08:34:04

1

這可能是因爲cookie生存期設置爲低。檢查this link

也別忘了session_start()

儘量不要強制設置爲$用戶()

if (isset($user) || !isset(self::$profile)) { 
    $_SESSION['logged'] = self::$profile = $user; 
} 
+0

Cookie的生命週期它被設置爲0. sesion_start它在指數頂部被剝落,是否足夠? – 2013-03-15 08:24:47

+1

這應該是確定的,那麼你確定它存儲在會話中嗎? )'function called? – fredrik 2013-03-15 09:19:17

+0

yes再次看看主要答案我編輯了新信息,我忘了提及。謝謝 – 2013-03-15 09:27:43