我刚刚创建了登录功能,它正常工作;
然而,名称没有正确显示;出于某种原因,它只是回响了名字的第一个字母,而不是杰克:
它在数据库中写得很好。
echo "You are now logged in , {$_SESSION['name']}";
有没有人遇到过同样的问题?
此致
亚切克
答案 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']}";
}
我希望我能让它更清晰,有人可能会得到线索。
提前干杯 亚切克