我有一個網站samplewebsite.com,登錄功能和會話工作正常。PHP - 在其他頁面無法訪問會話
現在我正在創建一個涉及在登錄頁面啓動的會話的新頁面,該頁面位於samplewebsite.com/sample.php。該文件現在只包含以下代碼。
session_start();
if(isset($_SESSION)){
print_r($_SESSION);
}
這將輸出一個空數組。當我檢查Chrome的開發人員工具時,Cookie選項卡包含一個PHPSESSID,我認爲這意味着會話實際上已啓動。
我非常沮喪爲什麼在我samplewebsite.com我登錄和會議正確拿起,而在samplewebsite.com/sample.php我無法得到我需要的會議。
服務器的會話配置中是否存在某種錯誤?可能出現什麼問題或者這個問題的可能原因是什麼?
編輯:
這是我的登錄文件的一個片段。
include "db.php";
if (!isset($_SESSION)){session_start(); }
if (isset($_SESSION['admin'])){header("Location: /"); }
if(isset($_POST['submit'])){
$query = mysql_query("Select * from users where `username`='".mysql_real_escape_string($_POST['username'])."' and `password`='".md5(mysql_real_escape_string($_POST['password']))."'");
if(mysql_num_rows($query) > 0){
$row = mysql_fetch_assoc($query);
$_SESSION['admin'] = $row['ID'];
header("Location: /"); exit();
}
else{
echo "<script>alert('Account Invalid')</script>";
}
}
會話已初始化,因爲如果不是我會被重定向到登錄頁面(因爲在index.php的重定向功能,其中如果$ _SESSION [「管理」]沒有設置,重定向到登錄的) 。這通過手動刪除chrome的開發工具上的會話進行測試,並刷新頁面將使我登錄頁面。
所以我登錄了,我看到我的會話在samplewebsite.com上工作,但在samplewebsite.com/sample.php的其他標籤上,當我嘗試時,我無法回顯出$ _SESSION ['admin']
echo $_SESSION['admin'];
如果你沒有在會話中放置任何東西,它將是空的。 –
你在哪裏設置你的會話變量? –
啓用error_reporting和display_errors,確保在您致電session_start()之前沒有發送任何輸出() – donald123