2013-04-25 75 views
0

我正在構建一個應用程序,並剛剛添加了一個運行良好的登錄頁面,並與數據庫中的「用戶名」和「密碼」字段進行通信。登錄後,它會帶您訪問用戶有權查看的頁面。如何使用會話變量輸出登錄用戶名

有沒有一種方法可以顯示「Welcome,xxx」給在下一頁登錄的特定用戶?更重要的是,在下一頁輸出登錄用戶的詳細信息?謝謝。

回答

0

只需驗證會話並從數據庫中調用相應的用戶即可。假設你正在使用一個會話

$_SESSION['loggedin'] = 'USERNAME'; 

使用者名稱,讓你只運行一個查詢調用使用mysql數據庫查詢,如

$user =$_SESSION['loggedin']; 
mysql_query("SELECT * FROM TABLENAME WHERE user = '$user'"); 

的用戶名和其他信息,這只是一個example.I推薦使用salt並加密會話,然後調用查詢。還使用mysqli/PDO作爲mysql已過時。以上僅爲例

3

您可以使用SESSION臨時存儲可在整個頁面上看到的數據。 .. 檢查成功登錄憑據後,您可以存儲在會話

<?php 
    session_start();  
    $_SESSION['username'] = $user_name; 
    ?> 

用戶數據存儲在會話的用戶數據後,您現在可以直到你取消設置的會話數據訪問在不同頁面的數據

<?php 
session_start();  
if (!isset($_SESSION['username'])) { 
    echo 'Welcome, '.$_SESSION['username']; 
} else { 
echo 'Sorry, You are not logged in.'; 
} 
?> 

當用戶註銷時,取消註冊這些會話變量。會話變量的註銷可通過以下方式進行:

<?php 
session_start(); 
unset($_SESSION['username']); 
?> 
+0

有沒有一種方法,我可以做到這一點,而無需使用會話變量,因爲我的網站只有2頁? – Dude 2013-04-25 13:59:41

+0

也就是說,獲取登錄人員的用戶名並將其顯示在其他頁面上。 – Dude 2013-04-25 14:00:36

+0

有沒有理由不使用會話? – 2013-04-26 03:33:01

0

你聽說過PHP會議上,你可以把用戶名在會議上這樣

$_SESSION['username'] 

它可以在接下來的頁面請求中使用,直到你登出。

+0

我有,但是不一定要等於存儲變量用戶名值? – Dude 2013-04-25 14:03:58

+0

是的,就像$ _SESSION ['username'] = $ user_name; – 2013-04-25 15:35:12

+0

我嘗試過,但是不應該首先聲明$ user_name並指定它與數據庫中的User_name字段相關? – Dude 2013-04-26 08:40:29

0

是的,你確定你可以這樣做。我希望當你檢查有效的用戶名和密碼時,你可以在會話變量中設置用戶名或userdetail。如果您已設置變量,則始終可以打印該會話變量。確保您已在頁面開始處開始會話。

例如,如果您已設置

$_SESSION['user'] = 'Ram'; 

,你可以簡單地打印

echo $_SESSION['user'];