如何在php会话中显示其他列

时间:2016-06-15 20:03:48

标签: php mysqli

我正在尝试在登录时提取其他用户信息。我已设法启用自己使用我的电子邮件地址和密码登录,但我很难显示我的姓/名等。

我正在登录:

$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它当然失败我当然不确定这个设置在哪里?

1 个答案:

答案 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']获取特定字段。