簡體   English   中英

提交后,PHP表單驗證不起作用?

[英]PHP form validation doesn't work when submited?

當我填寫表單並單擊“提交”按鈕時,我的驗證不顯示或工作,如果失敗則應顯示錯誤。 它只是重定向到同一頁面(index.php),就是這樣。 當我對類進行一些更改時,我的自定義css也不會改變。 這是我的代碼:

代碼結構:

Project
|    
+-- includes
|   |  
|   +-- footer.php
|   +-- form_process.php
|   +-- header.php  
+-- public
|   |
|   +-- main.js
|   +-- style.css
+-- vendor
|
+-- composer.json
+-- index.php

style.css文件

.error
{
   color:red;
}

.success
{
   color:#ff9966;
   text-align:center;
   font-weight:bold;
   font-size:15px;
}

index.php文件:

<?php include 'includes/header.php'; ?>
<?php include 'includes/form_process.php'; ?>

<div class="container">  
   <form id="contact" action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
      <h2>Contact</h2>
      <div class="form-group">
         <input type="text" class="form-control" placeholder="Enter company name:" value="<?php $company_name; ?>" name="company_name">
         <span class="error"> <?php $company_name_error; ?> </span>
      </div>
      <div class="form-group">
         <input type="text" class="form-control" placeholder="Enter your name:" value="<?php $user_name; ?>" name="user_name">
         <span class="error"> <?php $user_name_error; ?> </span>
      </div>
      <div class="form-group">
         <input type="text" class="form-control" placeholder="Enter your surname:" value="<?php $user_surname; ?>" name="user_surname">
         <span class="error"> <?php $user_surname_error; ?> </span>
      </div>
      <div class="form-group">
         <input type="text" class="form-control" placeholder="Enter your email:" value="<?php $email; ?>" name="email">
         <span class="error"> <?php $email_error; ?> </span>
      </div>
      <div class="form-group">
         <input type="text" class="form-control" placeholder="Enter your number:" value="<?php $number; ?>" name="number">
         <span class="error"> <?php $number_error; ?> </span>
      </div>
      <div class="form-group">
         <textarea type="text" class="form-control" placeholder="Type your message here..." <?php $message; ?> rows="6" name="message"></textarea>
      </div>
      <div class="form-group">
         <button class="btn btn-success" type="submit" name="submit" id="contact-submit">Submit</button>
      </div>
      <div class="success"> <?php $success; ?> </div>
  </form>
</div>
<?php include 'includes/footer.php'; ?>

form_process.php:

<?php

require_once 'vendor/autoload.php';

$company_name_error = $user_name_error = $user_surname_error = $email_error = $number_error = "";
$company_name = $user_name = $user_surname = $email = $number = $message = $success = "";

function test_input($data)
{
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
   if (empty($_POST["company_name"])) {
       $company_name_error = "Company name is required!!!";
   } else {
       $company_name = test_input($_POST["company_name"]);
       if (!preg_match("/^[a-zA-Z ]*$/", $company_name)) {
        $company_name_error = "Only letters and white spaces are allowed!!!";
     }
   }

   if (empty($_POST["user_name"])) {
       $user_name_error = "User name is required!!!";
   } else {
       $user_name = test_input($_POST["user_name"]);
       if (!preg_match("/^[a-zA-Z ]*$/", $user_name)) {
        $user_name_error = "Only letters and white spaces are allowed!!!";
       }
   }

   if (empty($_POST["user_surname"])) {
       $user_surname_error = "User surname is required!!!";
    } else {
       $user_surname = test_input($_POST["user_surname"]);
       if (!preg_match("/^[a-zA-Z ]*$/", $user_surname)) {
        $user_surname_error = "Only letters and white spaces are allowed!!!";
      } 
    }

    if (empty($_POST["email"])) {
       $email_error = "Email is required!!!";
    } else {
       $email = test_input($_POST["email"]);
       if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        $email_error = "Invalid email format!!!";
       }
    }

    if (empty($_POST["number"])) {
       $number_error = "Number is required!!!";
    } else {
       $number = test_input($_POST["number"]);
       if (!preg_match("/^[0-9+\-\.\/\(\) ]{6,30}$/", $number)) {
        $number_error = "Enter phone number from 6 to 30 characters!!!";
       }
    }

    if (empty($_POST["message"])) {
       $message = "";
    } else {
       $message = test_input($_POST['message']);
    }
}

好像你永遠不會echo index.php任何變量

你的<?php $number_error; ?> 例如<span class="error"> <?php $number_error; ?>要么<?= $number_error; ?> <?= $number_error; ?><?php echo $number_error; ?> <?php echo $number_error; ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM