Php 提交即使没有值也会转到操作页面

Php 提交即使没有值也会转到操作页面,php,mysql,html,forms,Php,Mysql,Html,Forms,每次我按提交。它直接进入(操作)页面,而不检查是否填写了任何值。如何阻止它更改页面,而不首先检查名称电子邮件和评论中是否有任何信息 <?php if( empty($name) && isset($_POST["submit"])){ global $connect; $name = $_POST['name']; $email = $_POST['email'];

每次我按提交。它直接进入(操作)页面,而不检查是否填写了任何值。如何阻止它更改页面,而不首先检查名称电子邮件和评论中是否有任何信息

<?php
        if( empty($name) && isset($_POST["submit"])){
            global $connect;
            $name = $_POST['name'];
            $email = $_POST['email'];
            $comment = $_POST["comment"];

            $sql = "INSERT INTO entries (fullName,email,comment)
            VALUES ('$name', '$email', '$comment')";
            $result = mysqli_query($connect, $sql);
            if(!$result){
                die("try again" .mysqli_error());
            }
        }
    ?>

    <section>
   <div class="container text-center ">
      <h1>Guess Book</h1>
       <div class="row"></div>
       <form class="text-center" action="thankYou.php" method="post" id="signUp" >
        <label class="mb-2 mt-2" style="padding-right:1vh"  for="name">Please Enter Your Full Name Here:</label><input  type="text" name="name" placeholder="Enter Full Name"  minlength="3" ><br>
        <label class="mb-2 mt-2" style="padding-right:4.1vh" for="email">Please Enter Your Email Here:</label><input type="email" name="email" placeholder="Enter Email"  minlength="4" ><br>
            <div class="form-group ">
              <label for="comment">Comment:</label>
              <textarea name="comment" class="form-control mb-3" rows="8" minlength="4" id="comment"></textarea>
           </div>
           <input class="bottom-pad" type="submit" name="submit">
       </form>
   </div>
  </section> 

最简单的选择是使用html“required”属性

就你而言:

<input  type="text" name="name" placeholder="Enter Full Name" minlength="3" required>
稍有错误,这是固定版本

if( !empty($_POST['name']) && isset($_POST["submit"])){

提交的原因是,您没有在表单中进行任何验证,因此您可以在输入字段中使用
required
请考虑使用一个更好的验证,我只是为了演示的目的

猜谜书
请在此处输入您的全名:
请在此处输入您的电子邮件:
评论:
您可以像前面的答案所建议的那样进行表单验证。这将阻止表单提交,除非所需的输入具有值

您还应该养成在服务器端验证代码的习惯,以确保用户提交的数据是您希望用户提交的信息

这里有一些简单的代码可以检查,以确保这些值中至少包含一些内容。您可以进一步验证每个字段是否具有满足某些条件的数据,例如名称仅包含字母字符

 if($_POST["submit"] && isset($_POST["submit"])){

        global $connect;

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

        if(!empty($_POST["name"]) && !empty($_POST["email"]) && !empty($_POST["comment"])){  

          $sql = "INSERT INTO entries (fullName,email,comment)
          VALUES ('$name', '$email', '$comment')";
          $result = mysqli_query($connect, $sql);
          if(!$result){
              die("try again" .mysqli_error());
          }

        } else {

        echo 'You must enter enter a value for all fields.';

      }

  }

您必须检查查询中想要的每个post变量是否为空。我是php新手,如何检查每个post变量
 if($_POST["submit"] && isset($_POST["submit"])){

        global $connect;

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

        if(!empty($_POST["name"]) && !empty($_POST["email"]) && !empty($_POST["comment"])){  

          $sql = "INSERT INTO entries (fullName,email,comment)
          VALUES ('$name', '$email', '$comment')";
          $result = mysqli_query($connect, $sql);
          if(!$result){
              die("try again" .mysqli_error());
          }

        } else {

        echo 'You must enter enter a value for all fields.';

      }

  }