如何实现登录通知回显具体用户名而非用户等级的技术咨询
如何在登录通知中显示用户真实姓名而非固定等级?
嘿,我来帮你搞定这个问题!你现在登录时弹出的提示是“欢迎,客户”,要把这个固定的“客户”换成用户的真实姓名,其实只需要几个小步骤,结合你的现有代码来修改就行:
第一步:确认数据库里有用户真实姓名字段
首先得确保你的用户表(比如users)里有存储真实姓名的字段,比如叫real_name。如果还没有,得先给表添加这个字段哦。
第二步:登录验证时获取并存储用户真实姓名到Session
你现有代码里已经用了session_start(),那在用户登录验证通过后,除了验证账号密码,还要从数据库里把用户的真实姓名查出来,存到Session里。比如修改登录逻辑部分:
<?php include('conn.php'); session_start(); function check_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } if ($_SERVER["REQUEST_METHOD"] == "POST") { // 假设你从表单获取了用户名/账号 $username = check_input($_POST['username']); $password = check_input($_POST['password']); // 用预处理语句查询数据库,避免SQL注入 $sql = "SELECT id, real_name FROM users WHERE username = ? AND password = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("ss", $username, $password); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows == 1) { $user = $result->fetch_assoc(); // 把真实姓名存入Session $_SESSION['user_real_name'] = $user['real_name']; // 弹出包含真实姓名的欢迎提示 echo "<script>alert('欢迎," . $_SESSION['user_real_name'] . "');</script>"; } else { echo "登录失败,请检查账号密码"; } } ?>
第三步:在其他页面调用Session中的真实姓名
如果是在登录后的其他页面显示欢迎提示,只要确保页面最开头已经启动Session(session_start()要放在任何输出之前),直接调用$_SESSION['user_real_name']就行:
<?php session_start(); // 先判断用户是否已登录 if(isset($_SESSION['user_real_name'])){ echo "<script>alert('欢迎回来," . $_SESSION['user_real_name'] . "');</script>"; } ?>
小提醒
- 一定要坚持用预处理语句或者你的
check_input函数做安全防护,避免SQL注入和XSS攻击 session_start()必须放在页面的最开头,不能有任何HTML标签、空格之类的输出在它前面
内容的提问来源于stack exchange,提问作者Kim
相关产品推荐
相关产品推荐

