2011-05-15 115 views
0

我有一個登錄頁面,用戶使用用戶名和密碼登錄,然後我想顯示,如果我的用戶登錄,他的名字,所以我有一個登錄()函數來確定是否他們可以登錄,如果它返回true,那麼它會設置一個會話變量,然後調用函數get_logged_on_person(),首先是我的數據庫中的用戶名和姓,但是我不知道該怎麼做。任何幫助表示讚賞;我login_action.php如下:會話變量登錄

# Get form data 
$username = $_POST['username']; 
$password = $_POST['password']; 

if (login($username, $password) == true) { 
    session_start(); 
    $sessionid = session_id(); 
    $insession = true; 
    $logonas = get_logged_on_person($username); 
    $firstname = $logonas.firstname; 
    $lastname = $logonas.lastname; 
    $_SESSION['firstname'] = $firstname; 
    $_SESSION['lastname'] = $lastname; 
     ???? 


}else{ 
    $error = "Incorrect login."; 
    header("Location: login.php?error=$error"); 
    exit; 
} 

?> 
+1

'$ logonas.firstname'無效PHP。什麼是'$ logonas',一個數組或對象? – Nick 2011-05-15 09:42:32

+0

是的,多數民衆贊成我認爲,$ logonas是一個數組。 – John 2011-05-15 09:46:08

+0

您可以通過PHP中的$ logonas ['firstname']'和'$ logonas ['lastname']'訪問數組鍵。 – Nick 2011-05-15 09:46:50

回答

1

在每個頁面的頂部,開始(之前的任何輸出):

<?php 
session_start(); 

如果你想顯示用戶信息,使用:

<?php 
if (isset($_SESSION['firstname'])) 
    echo "Currently logged in as: {$_SESSION['firstname']}"; 
else 
    echo "Not logged in"; 
?> 

當然,如果你已經在<?php ... ?>標籤內,然後省略它們。


除了設置爲...之外,您不需要做任何操作。你應該,但是,改變你的代碼在這裏:

$firstname = $logonas.firstname; 
$lastname = $logonas.lastname; 
$_SESSION['firstname'] = $firstname; 
$_SESSION['lastname'] = $lastname; 
    ???? 

替換:

$_SESSION['firstname'] = $logonas['firstname']; 
$_SESSION['lastname'] = $logonas['lastname']; 
0

後您管理創建會話變量$ _SESSION [「姓名」]您可以從任何頁面調用它。有一件事 - 每個頁面必須以session_start()開頭;聲明