2013-12-08 23 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']}"; 
       } 

我希望我说得更清楚一些,有人可能会得到一个线索。

干杯提前 亚切克