我遇到了PHP會話丟棄數據並重定向回我的登錄頁面的問題。PHP會話丟失
這是目錄結構我從頂部有:
- 登錄//包含文件的登錄/退出
- 主要//包含頁登錄用戶
- 指數。 php //完全操作形式的登錄屏幕
在登錄目錄中:check_login.php
在主目錄:page1.php中,文件夾1和文件夾2
在文件夾1:home.php,include1.php
在文件夾2:include2.php
(如果這不是很抱歉很容易理解)
這是我對check_login.php登錄時運行這些代碼:
session_start();
$_SESSION["id"] = $id;
header("location:../main/page1.php"); //into main directory
的所有頁面都包含相同樣式(標題,導航和頁腳)以及具有每頁所以因此我使用包括包含在根據內容文件夾1和文件夾2所顯示的變化一個主要內容塊。默認情況下,home.php包含在位於folder1中的主頁中。其他頁面使用包括include1.php或include2.php,它們可以來自任一文件夾。
在page1.php中的頂部:
session_start();
if($_SESSION["id"] == '')
{
header("location:../index.php");
}
從page1.php中,如果我瀏覽到一個頁面,其中一個包括位於folder1中,能正常工作。如果我導航回家,一個包括也在folder1這工作正常。兩次我都可以從會話中讀取id變量。
但是,如果我瀏覽到的網頁與包括位於文件夾2我重定向到我的登錄頁面。
任何想法?
如果我理解正確,問題可能是您重定向到文件夾2時沒有聲明「session_start()」 – Yaakov 2013-04-27 23:37:02
我可以在其中切換的文件夾1中的包含沒有session_start();在頂部,這工作正常。文件夾2也沒有。不過,我已經嘗試把session_start();在所有包含這兩個文件夾的頂部,仍然是同樣的問題。 – Matteth13 2013-04-27 23:39:30
「index.php」包含什麼? – Yaakov 2013-04-27 23:41:42