登录功能仅渲染第一个字母

时间:2013-12-08 23:50:40

标签: php function session login

我刚刚创建了登录功能,它正常工作;

然而,名称没有正确显示;出于某种原因,它只是回响了名字的第一个字母,而不是杰克:

它在数据库中写得很好。

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

有没有人遇到过同样的问题?

此致

亚切克

2 个答案:

答案 0 :(得分:0)

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

请勿在{{1​​}}周围使用引号。在双引号字符串中不需要它们来访问数组元素。

答案 1 :(得分: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.";
}
最后:

在session_start();

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

我希望我能让它更清晰,有人可能会得到线索。

提前干杯 亚切克