我有一點問題。我試圖設置一個簡單的網頁,只有三個.php頁面。我想在用戶登錄時設置會話變量$ _SESSION ['userID'],並且我希望索引頁面顯示額外信息,如果有人登錄。使用會話變量在不同頁面上使用信息
關於index.php我想展示一些信息,如果用戶登錄我想顯示一些額外的信息。 login.php - 簡單的登錄形式。 login_exe.php - 負責數據庫連接和驗證。
所以這是我的想法:
在index.php文件,檢查是否會話啓動時,如果沒有:開始。
<?php
if (!isset($_SESSION)) {
session_start();
echo "session started";
}
以後,檢查是否$ _SESSION [ '用戶ID']包含一個值,如果是這樣:打印一個字符串
if($_SESSION['userID'] != null){
echo "User logged in";
}
在login_exe.php我幾乎相同的代碼:
<?php
if (!isset($_SESSION)) {
session_start();
echo "session started";
}
在驗證功能
:
$_SESSION['userID'] = $data['userID'];
header("Location: index.php");
問題是每個頁面上都會啓動一個新會話。我該如何解決這個問題,並且只啓動一次會話?在此先感謝
首先,把'在session_start();'呼叫在上面。總是。 – 2014-02-22 11:11:13
'session_start()'應該總是在文檔的頂部。而不是檢查'$ _SESSION ['key']'的整個'$ _SESSION'檢查。 –
我應該刪除「if(!isset($ _ SESSION)){」子句並且只有session_start()?我是否需要在index和login_exe.php上都有session_start()? @vlzvl – Mangs