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

时间:2018-03-24 00:05:31

标签: php mysql html5 forms

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

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

3 个答案:

答案 0 :(得分:0)

最简单的选择是使用html&#34; required&#34;属性

在你的情况下:

<input  type="text" name="name" placeholder="Enter Full Name" minlength="3" required>

这是客户端验证,您还需要验证服务器端。

您的代码:

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

稍有不妥,这是固定版本

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

答案 1 :(得分:0)

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

&#13;
&#13;
  <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"  required><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" required><br>
            <div class="form-group ">
              <label for="comment">Comment:</label>
              <textarea name="comment" class="form-control mb-3" rows="8" minlength="4" id="comment" required></textarea>
           </div>
           <input class="bottom-pad" type="submit" name="submit">
       </form>
   </div>
  </section> 
&#13;
&#13;
&#13;

答案 2 :(得分:-1)

您可以像之前的答案所建议的那样进行表单验证。这将阻止表单提交,除非所需的输入中包含值。

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

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

int