2013-02-05 24 views
0

我有沒有設置爲登錄到會話,直到第二次點擊(雖然它們在登錄)用戶兩個步驟設置會話作爲登錄

那麼一個奇怪的問題,我有一個登錄下拉看起來像這樣:

enter image description here

我發送用戶的帳戶選擇器。 PHP判斷基於一個企業或個人賬戶approprirate驗證:

if (isset($_POST['loginAccountType']) && $_POST['loginAccountType'] == 'individual') {  
    include('ind_login.php');; 
} elseif (isset($_POST['loginAccountType']) && $_POST['loginAccountType'] == 'business') { 
    include('bus_login.php'); 
} else { 
    include('error_login.php'); 
} 

我有我的session_start();帳戶selector.php頁以及我ind_login.php頁面上。而且,它們都位於頁面的最頂端(在其他任何地方之前)。

一次我登錄,這是我的看法:

enter image description here

正如你所看到的,我能夠設置和ind_login.php頁面上返回$_SESSION['Ind_ID']並查看您的個人作品(這是與到SESSION ID)。

但是,我們仍然可以看到在導航按鈕LOG時的代碼表示,這個按鈕應該被設置爲顯示:無:

if(isset($_SESSION['Ind_ID'])) { 
    $accIndStyle = "visibility: visible;"; 
} else { 
    $accIndStyle = "display:none;"; 
} 

我知道這是正確的代碼,該按鈕併成爲顯示器:沒有其他按鈕。但是,如果我第二次登錄或通過會話(開始)轉到其他頁面,則該站點將按設置讀取$_SESSION['Ind_ID'],並隱藏登錄按鈕並將其替換爲註銷按鈕。

非常感謝任何幫助。

回答

0

好像你的頁面需要刷新,或者只是在那裏拋出一個Ajax調用來根據會話更新按鈕值。

+0

感謝您的建議;不幸的是,當我刷新頁面時,它會創建一個錯誤,因爲頁面無法從輸入中檢索值,因爲我在刷新頁面時(沒有從輸入中輸入值)。這一定是我犯的一個愚蠢的錯誤。 – kentrenholm

+0

你說得對。我只需要刷新標題頁面(按登錄按鈕時按登錄表單+導航菜單頁 Jst不知道如何解決它 – kentrenholm

+0

發送ajax請求到後端腳本if會議確定,更新內容:) – phpalix

1

將你的session_start()放在index.php文件的頂部(該文件包含其他文件)。

+0

感謝您的建議;不幸的是,將session_start()放在包含兩個文件(我的頭文件)的文件的頂部並不會改變這種情況。這一定是我犯的一個愚蠢的錯誤。 – kentrenholm

+0

檢查index.php('print_r($ _ SESSION)')中的'$ _SESSION [「Ind_ID」]'是否具有'session_start()'後的值。如果已定義,則該var將被清除。您還可以通過if($ _SESSION [「Ind_ID」])define(「login」,true)來修改登錄狀態。其他定義(「登錄」,假);'在主要的PHP文件的頂部。 – take