我正在尝试在登录时提取其他用户信息。我已设法启用自己使用我的电子邮件地址和密码登录,但我很难显示我的姓/名等。
我正在登录:
$query = "SELECT * FROM users WHERE user_email = '". $email ."' AND user_password = '". $password ."'" ;
$result = mysqli_query($con, $query);
if (mysqli_num_rows($result) == 1) {
$_SESSION['user_email'] = $email;
header('Location: dashboard.php');
} else {
echo 'fail!';
}
然后在我的标题中我有:
session_start();
if( !isset($_SESSION['user_email']) ){
header('Location: index.php');
exit();
} else{
$email = $_SESSION['user_email'];
echo 'Logged in';
}
但是我尝试回显出user_firstname或者user_lastname它当然失败我当然不确定这个设置在哪里?
答案 0 :(得分:2)
您需要使用从查询中读取一行,然后从中设置会话变量。
if (mysqli_num_rows($result) == 1) {
$_SESSION['user_email'] = $email;
$row = mysqli_fetch_assoc($result);
$_SESSION['user_firstname'] = $row['user_firstname'];
$_SESSION['user_lastname'] = $row['user_lastname'];
header('Location: dashboard.php');
} else {
echo 'fail!';
}
您可以在标题中打印会话变量。
session_start();
if( !isset($_SESSION['user_email']) ){
header('Location: index.php');
exit();
} else{
$email = $_SESSION['user_email'];
echo 'Hello, ' . $_SESSION['user_firstname'];
}
您也可以将整行放入会话中:
$_SESSION['user_data'] = $row;
然后,您可以使用$_SESSION['user_data']['user_firstname']
获取特定字段。