2013-12-08 27 views
0

我剛做了登錄功能,它工作正常;登錄功能只能渲染第一個字母

但是名稱顯示不正確;由於某種原因,它只回應名稱的第一個字母J.而不是Jack。

它在數據庫中寫得很好。

echo "You are now logged in , {$_SESSION['name']}"; 

有沒有人遇到同樣的問題?

問候

亞切克

回答

0
echo "You are now logged in , {$_SESSION[name]}"; 

不要使用引號name。它們在用雙引號字符串訪問數組元素時不是必需的。

+0

我試着不帶引號,並得到一個錯誤信息 – Jack

+0

任何其他建議? – Jack

+0

'var_dump($ _ SESSION [「name」])''的結果是什麼? –

0

只是想我可能會添加更多的代碼,以使問題多一點明確:

這裏的功能check_login檢查,如果結果是在數據庫中,並將其傳遞到另一個文件:

function check_login($db, $email = '', $pass='') 
{ 
if(!empty($_POST['email']) && !empty($_POST['pass'])) 
{ 
$sql="SELECT * FROM users WHERE email='$email' AND password='$pass'"; 
$r=$db->query($sql); 
$num=$r->num_rows; 
if($num != 0) 
{ 
$row=$r->fetch_assoc(); 
return array (true, $row['name']); 

} 
else 
{ 
    echo "Your login details are incorrect. Please try again."; 
} 

} 
} 

在另一個文件:

list($check,$data) = check_login($db, $_POST['email'], $_POST['pass']); 

if($check) 
{ 
session_start(); 
$_SESSION['user_id'] = $data['user_id']; 
$_SESSION['name'] = $data['name']; 
redirect_user('the_stoles/loggedin.php'); 
} 
else 
{ 
    echo "Your login details are incorrect. Please try again."; 
} 

ANE最後:

SES sion_start();

   if(!isset($_SESSION['user_id'])) 
       { 
        require('login_functions.php'); 
        redirect_user(); 
       } 
       else 
       { 
       echo "You are now logged in, {$_SESSION['name']}"; 
       } 

我希望我說得更清楚一些,有人可能會得到一個線索。

乾杯提前 亞切克