PHP登录验证后用户信息不显示及session循环问题求助
问题解决方案
1. 登录后index.php无法显示用户邮箱
- 确认
login.php中登录验证通过后,是否将用户邮箱存入Session:
登录成功的逻辑里必须添加类似代码:$_SESSION['user_email'] = $verified_user_email; // $verified_user_email是你从数据库或验证逻辑中拿到的用户邮箱 index.php必须在任何输出(包括空格、HTML标签)之前调用session_start(),否则Session无法正常读取- 在
index.php中输出邮箱时,先判断Session是否存在,避免报错:if (isset($_SESSION['user_email'])) { echo "当前登录邮箱:" . $_SESSION['user_email']; } else { echo "请先登录"; }
2. 重复调用session_start()引发无限循环
- 不要重复调用
session_start(),可以用判断语句确保只启动一次:if (!session_id()) { session_start(); } - 推荐将Session初始化逻辑抽离到公共文件(比如
common.php),所有需要Session的页面通过include 'common.php';引入,避免重复编写启动代码 - 检查页面跳转逻辑:登录成功后跳转
index.php时,必须加上exit;终止后续代码执行,防止意外重复触发Session操作:header("Location: index.php"); exit; // 必须加,避免后续代码继续执行
内容的提问来源于stack exchange,提问作者cristo
相关产品推荐
相关产品推荐

