在PHP中如何显示用户正确登录后的信息


In PHP How to display a users information once they have correctly logged in

我搜索了很多例子和解决方案,都遇到了同样的问题,如果有人能帮忙,我将不胜感激。

基本上,我已经连接了数据库,当他们正确登录时,页面将指向login_success.php。一旦进入页面,我希望向用户显示他们的详细信息。

我显然不期待答案,我只是希望了解我哪里错了。

<?php
        ob_start();
        include 'connect.php';
    } else {
        header('Location: main_login.php?error=2');
    }
    ob_end_flush();
?>

您似乎没有在登录文件中启动会话。这将导致您的$_SESSION变量在登录后无法转移到下一页。由于您在所有文件中都需要connect.php(很可能),因此应该将session_start()放在最上面。这样你的会话就开始了,你不必在每个代码页上都键入那一行。

您正在回显login_success.phphtml标记之前的信息。相反,进入你想要显示的代码并使用:

<?= "your email is... ".$_SESSION['myusername']; ?>
<?= $row['forename'] . " " . $row['surname']; ?>

如果您没有看到任何$row变量的任何内容,请尝试将$row打印到屏幕上以检查它们的周期。

<? print_r($row); ?>

如果您没有看到$row的任何内容,则说明您的查询不起作用。

在会话中分配用户名和密码之前,应该先获取用户名和密码,如下所示:

$login_user = mysql_query("SELECT * FROM $tbl_name WHERE email_address = '".$myusername."' and password = '".$mypassword."'");
$row = mysql_fetch_array($login_user);

$_SESSION['myusername'] = $row['myusername'];
$_SESSION['mypassword'] = $row['password']; 

并且不再使用mysql函数,它们不再得到支持和维护,并且正式贬值。