首页 > 解决方案 > 有没有办法在表单本身上显示错误但表单操作重定向到另一个 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');
    }

我希望提交按钮表单下方的“用户名或密码不正确”。

标签: php

解决方案


您可以检查是否sessionsetnot在您的登录页面中,如下所示:

<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>

推荐阅读