php - 有没有办法在表单本身上显示错误但表单操作重定向到另一个 php 文件?
问题描述
如果考虑到我的操作表单重定向到另一个 php 文件,我想在用户名和密码不匹配时向我的登录页面显示错误。
尝试设置 $_SESSION 并将其回显到我的登录页面,刷新后回显不断返回。
登录页面:
<form action="test.php" method="post">
<label>Username: </label>
<input type="text" name="username">
<br>
<label>Password: </label>
<input type="text" name="password">
<br>
<input type="submit" value="Register" name="submit">
<label><?php echo $_SESSION['valid']; ?></label>
</form>
测试.php:
session_start();
$uname = "user";
$pass = "123";
if(isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
if(($username == $uname) && ($password == $pass)) {
$_SESSION['valid'] = "success";
header('Location: success.php');
} else {
$_SESSION['valid'] = "fail";
header('Location: index.php');
}
我希望提交按钮表单下方的“用户名或密码不正确”。
解决方案
您可以检查是否session
是set
或not
在您的登录页面中,如下所示:
<form action="test.php" method="post">
<label>Username: </label>
<input type="text" name="username">
<br>
<label>Password: </label>
<input type="text" name="password">
<br>
<input type="submit" value="Register" name="submit">
<label><?php
///checking if session is set then print
if($_SESSION['valid']!=null && isset($_SESSION['valid'])){
echo $_SESSION['valid'];
}
?></label>
</form>
推荐阅读
- docker - Bitbucket 管道/Docker:连接被拒绝
- java - JTable:从模型而不是表中获取值
- python - 按相关模型属性过滤 Django 通用外键
- java - 嗨,在启动 cmd\design javafx\cmd eclipse 我的文件没有被删除,也没有被复制
- javascript - 每次读取数据块后等待 - Node JS
- ios - 将PNG图像读取为NSData,出现一些额外的字节
- node.js - 是否可以在不使用 sequelize-typescript 框架的情况下在 NodeJS 中使用 Sequelize typescript?
- java - 使用 MSI 从本地运行的 java 应用程序连接到 Azure Keyvault 的方法
- python - 使用python在JSON循环中解析文件
- ruby-on-rails - 如何在rails中使用级联删除将列添加为外键