PHP独立脚本生成的错误信息如何展示到HTML登录表单指定位置
实现PHP逻辑页错误信息传递到登录页面的方法
你当前的问题根源是:业务逻辑(LoginProcess.php)和登录表单页是两个独立的脚本,直接在表单页输出$errorMsg无法跨文件获取到逻辑页定义的变量值,你可以通过session传递错误信息实现需求,已经开了session的前提下修改成本很低,具体步骤如下:
第一步 修改LoginProcess.php代码
在逻辑页的错误分支,将错误信息存入session后跳转回登录表单页,修改代码如下:
} else { // if error occurs $errorMsg = "Could not find account. Please register."; // 将错误信息存入session $_SESSION['login_error'] = $errorMsg; // 跳转回你的登录表单页,注意替换成你自己的登录页文件名,比如login.php header("Location: login.php"); exit; }
登录成功的分支可以额外加一行unset($_SESSION['login_error']);,避免残留的旧错误信息显示
第二步 修改登录表单页代码
- 登录页最顶部先开启session,才能读取session存储的错误信息:
<?php session_start(); ?>
- 替换你原来表格底部输出错误的位置代码,增加存在性判断,输出后立即清除session里的错误信息,避免刷新页面重复显示:
<p id="errorMsg" class="error"> <?php if (isset($_SESSION['login_error'])) { echo $_SESSION['login_error']; unset($_SESSION['login_error']); } ?> </p>
如果不想用session传递,也可以直接把LoginProcess的逻辑合并到登录表单页的顶部,表单的action属性留空或者填写当前页地址,这样$errorMsg变量就在当前脚本生命周期内,可以直接输出。
内容的提问来源于stack exchange,提问作者Ankia LeRoux
相关产品推荐
相关产品推荐

