我在獲取簡單的會話數據值以在頁面重定向後保留問題時出現問題。函數檢查通過郵政發送的用戶數據,如果在數據庫中的匹配值它的會話數據集的價值觀和重定向到另一頁:頁面重定向後會話數據丟失
if ($login_ok) {
//set session data
$_SESSION ['online'] = 1;
$_SESSION ['userid'] = $id;
$_SESSION ['username'] = $name;
//redirect to new page
redirect('start.php');
}
在新的頁面代碼中的會話數據未設置。簡單測試返回空值,就好像會話數據未設置一樣:
echo 'Session Login Status: ' . $_SESSION ['online'];
echo 'Session UserID: ' . $_SESSION ['userid'];
echo 'Session Username: ' . $_SESSION ['username'];
用上面的echo語句替換重定向可以正常工作。會話數據是否已設置並且在加載任何頁面數據之前激活重定向意味着會話變量未分配?
爲了確保活動的會話始終可用,一個包含文件包含以下代碼:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
任何想法是什麼問題就在這裏?
非常感謝, 千瓦
您是否在start.php測試以評論您的include和write session_start();沒有條件? –
@Francezo相同的代碼通過相同的包含文件在start.php中運行,即:if(session_status()== PHP_SESSION_NONE){session_start();} } – Kwangle
我的意思是做一個測試。無條件地創建session_start(),或者創建一個echo session_status()。也許session_status沒有返回你所期望的。只是爲了調試。 –