首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PHP中如何在表单输入字段旁边显示单独的错误消息?

在PHP中如何在表单输入字段旁边显示单独的错误消息?
EN

Stack Overflow用户
提问于 2019-05-26 05:58:57
回答 2查看 76关注 0票数 -4

在PHP中,如何在空的或不正确的表单输入字段旁边显示单独的错误消息?如果表单成功提交,如何在几秒钟后刷新页面并将用户重定向回上一个页面?

PHP (前面)

代码语言:javascript
复制
<form id="application" method="post" action="processing.php" novalidate="novalidate">
    <fieldset>
        <p>
            <legend>Application Form</legend><p>
                <label for="fname">Name</label>
                <input type="text" name="fname" id="fname" required="required" />
        </p>
    </fieldset>
</form>

PHP (Back)

代码语言:javascript
复制
<?php
    function sanitise_input($data) {
      $data = trim($data);
      $data = stripslashes($data);
      $data = htmlspecialchars($data);
      return $data;
    }
    require_once ("settings.php");
    $conn = @mysqli_connect(
      $host,
      $user,
      $pwd,
      $sql_db
    );
if ($conn) {
      if (isset($_POST["fname"])) {
        $fname = sanitise_input($_POST["fname"]);
      }
        else {
          mysqli_close($conn);
          header("location:application.php");
        }
else {
          mysqli_close($conn);
          header("location:application.php");
        }
      $query = "CREATE TABLE IF NOT EXISTS application (
        fname VARCHAR(50) NOT NULL)";
      $result = mysqli_query ($conn, $query);
      if (!$result) {
        echo "<p>Error!</p>";
      }
    }
    if (!$conn) {
      echo "<p>Failed!</p>";
    }
      else {
        $sql_table = "application";
        $query = "INSERT INTO $sql_table (fname) VALUES ('$fname')";
      $result = mysqli_query($conn, $query);
      if (!$result) {
        echo "<p>Error!", $query, "</p>";
      }
        else {
          $id = "SELECT * FROM application ORDER BY id DESC LIMIT 1";
          $idresult = mysqli_query($conn, $id);
          while ($row = mysqli_fetch_assoc($idresult)) {
            echo "<p>You are applicant #",$row["EOInumber"],"</p>";
          }
        }
      mysqli_close($conn);
    }
    ?>
EN

回答 2

Stack Overflow用户

发布于 2019-05-26 06:06:33

这个问题不是很清楚,但如果我必须假设你所要求的是如何在PHP中显示错误消息。您可以尝试:

如果(isset(variable_name){

echo“显示错误:”

}

isEmpty(variable_name) { echo“显示错误:”}

尝试清楚地指定错误...

堆栈溢出中有多个答案,您可以搜索...

票数 0
EN

Stack Overflow用户

发布于 2019-05-26 07:28:49

根据你在评论中的输入判断,我想出了下面的代码。按您认为合适的方式修改

front.php

代码语言:javascript
复制
<?php
session_start();
?>
<html>
    <head>
        <title>Front Page</title>
    </head>
    <body>
        <h1 style="text-align:center;">My Form</h1>
        <div style="width: 500px;margin:0 auto; margin-top:5px">
            <form method="POST" action="back.php">
                <?php
                // Explode and convert errors string back into array so we can use methods like in_array()
                $errorsArray = [];

                if(isset($_SESSION['errors'])){
                    $errorsArray = explode(',', $_SESSION['errors']);
                }
                ?>
                <div style="margin-top:10px;">
                    <label for="name">Name</label>
                    <input type="text" id="name" name="name" placeholder="Enter a name" />
                    <?php
                        if(in_array('name', $errorsArray)){
                            echo '<div style="margin-top:10px;">Something wrong with name</div>';
                        }
                    ?>
                </div>
                <div style="margin-top:10px;">
                    <label for="email">Email</label>
                    <input type="text" id="email" name="email" placeholder="Enter a Email" />
                    <?php
                        if(in_array('email', $errorsArray)){
                            echo '<div style="margin-top:10px;">Something wrong with email</div>';
                        }
                    ?>
                </div>
                <div style="margin-top:10px;">
                    <button type="submit">Send</button>
                    <?php
                    if(isset($_SESSION['error']) && empty($_SESSION['status'])){
                        echo '<div style="margin-top:10px;">Some fields have errors</div>';
                    }

                    if(isset($_SESSION['status']) && empty($_SESSION['error'])){
                        echo '<div style="margin-top:10px;">Success</div>';
                    }
                    ?>
                </div>
            </form> 
        </div>
    </body>
</html>
<?php 
session_unset();
session_destroy();
?>

back.php

代码语言:javascript
复制
<?php
session_start();

$name = $_POST['name'];
$email = $_POST['email'];

if(isset($name) && isset($email) && $name != "" && $email != ""){
    // Continue with database insertion

    $_SESSION['status'] = 'success';
    echo 'Thanks'; // Echo your html
    header("refresh:5; url=./front.php"); // the 5 is seconds
    die();
} else {
    $errorsArray = [];

    if(!isset($name) || $name == ""){
        array_push($errorsArray, 'name');
    }

    if(!isset($email) || $email == ""){
        array_push($errorsArray, 'email');
    }

    $_SESSION['error'] = 'true';
    $_SESSION['errors'] = join(',', $errorsArray);
    header("Location:./front.php");
    die();
}
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56309057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档