PHP登录系统:如何通过$_SESSION['username']显示用户全名?
如何通过Session显示用户全名?
嘿,这个需求很好实现,核心就是在登录验证成功的时候,把用户的全名也捞出来存到Session里就行,具体步骤如下:
1. 调整登录时的SQL查询语句
你现在的登录代码应该是只查了用户名和密码来做验证,现在需要修改SQL,把fullname字段也包含进去。比如:
假设你原来的查询是这样的:
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
可以改成更精准的(只查需要的字段,更高效安全):
$query = "SELECT username, fullname FROM users WHERE username='$username' AND password='$password'";
2. 验证成功后把全名存入Session
当查询到匹配的用户(用户名密码正确),就把查询结果里的fullname存入Session,同时保留原来的username Session(如果后续还需要用的话)。修改后的代码片段大概是这样:
if (isset($_POST['login_user'])) { $username = mysqli_real_escape_string($db, $_POST['username']); $password = mysqli_real_escape_string($db, $_POST['password']); // 调整后的查询,获取用户名和全名 $query = "SELECT username, fullname FROM users WHERE username='$username' AND password='$password'"; $results = mysqli_query($db, $query); // 检查是否找到匹配的用户 if (mysqli_num_rows($results) == 1) { // 取出用户数据 $user = mysqli_fetch_assoc($results); // 存入Session $_SESSION['username'] = $user['username']; // 保留原有的Session项 $_SESSION['fullname'] = $user['fullname']; // 新增全名的Session项 // 跳转到主页 header('location: home.php'); exit; // 跳转后记得exit,避免后续代码执行 } else { // 登录失败提示 echo "用户名或密码不正确哦"; } }
3. 在主页显示全名
现在到主页,只要先启动Session,然后直接调用$_SESSION['fullname']就能显示全名了:
// 每个用到Session的页面开头都要加这个! session_start(); // 先检查用户是否已登录 if (isset($_SESSION['fullname'])) { echo "欢迎回来," . $_SESSION['fullname'] . "!"; } else { // 未登录的话跳回登录页 header('location: login.php'); exit; }
小提醒
- 千万别忘了在所有使用Session的页面最开头加
session_start();,不然读不到Session数据哦。 - 另外,安全方面建议别存明文密码在数据库,用
password_hash()加密、password_verify()验证会更安全,不过这是额外的优化啦~
内容的提问来源于stack exchange,提问作者Lovi
相关产品推荐
相关产品推荐

