$_SESSION['error']消息无法显示问题求助
问题排查与修复
1. PHP标签语法错误
你的register.php里的PHP起始标签写成了<? php(中间有空格),这是无效的PHP标签,会导致这段代码被当作纯文本输出,无法执行require_once 'php.php';,也就没法启动session,自然读取不到$_SESSION['error']。
修复:
把<? php改成<?php(去掉中间空格):
<?php require_once 'php.php'; ?>
2. 表单提交目标与处理逻辑不匹配
你的表单action设置为about.php,但表单提交的处理逻辑写在php.php里。如果about.php没有引入php.php,点击提交按钮后,处理代码根本不会运行,也就不会设置$_SESSION['error']并跳转回register.php。
修复方案二选一:
- 修改表单的
action为php.php,让提交直接指向处理逻辑文件:
<form action="php.php" method="post" enctype="multipart/form-data">
- 或者在
about.php顶部引入php.php,确保处理逻辑能执行:
<?php require_once 'php.php'; ?>
3. 额外验证点
- 确认
php.php里的session_start()没有在任何输出之后调用(目前你的代码是开头就调用,没问题)。 - 可以在
register.php的session判断代码前临时添加var_dump($_SESSION);,查看session的实际内容,确认error是否真的存在:
<div><?php var_dump($_SESSION); // 临时测试用,确认后可删除 if ( isset($_SESSION['error']) ) { echo '<p style="color:red">'.$_SESSION['error']."</p>\n"; unset($_SESSION['error']); } // 其余代码 ?> </div>
内容的提问来源于stack exchange,提问作者newdev
相关产品推荐
相关产品推荐

