PHP简单表单验证


PHP Simple Form Validation

我正在尝试创建一个简单的表单验证,在设置完所有字段之前,表单不会提交。我这里有两份文件。-form.php-process.php

由于某些原因,$error不会出现,单选按钮也不会提交。有什么问题吗?

这是表格.php:

    <?php
 if(isset($_GET['error']) &&  $_GET['error']!=""){
  echo  $_GET['error'];
 }
?>

    <body>
    <form action="process.php" method="POST">
       <p>
           <label for="name">Your Name:</label>
           <input type="text" name="name" id="name" value="">
       </p>
       <p>
           <label for="location">Dojo Location:</label>
           <select name="location">
              <option value="Mountain View">Mountain View</option>
              <option value="San Francisco">San Francisco</option>
              <option value="South Korea">South Korea</option>
              <option value="Philippines">Philippines</option>
            </select>
        </p>
        <p>
            <label for="language">Favorite Language:</label>
            <select name="language">
              <option value="JavaScript">JavaScript</option>
              <option value="PHP">PHP</option>
              <option value="Ruby">Ruby</option>
              <option value="Python">Python</option>
            </select>
        </p>
        <p>
            <label for="comment">Comment: (Optional)</label><br/>
            <textarea rows="10" cols="50" name="comment"></textarea>
        </p>
        <p>
             <label for="comment">Can we store cookies in your computer?</label>
             <input type="radio" name="cookies" value="yes">Yes
             <input type="radio" name="cookies" value="no">No
        </p>
          <input type="submit" value="Submit">
    </form>

这是流程。hp:

<?php 
        if (isset($_POST["submit"])) {
            if (empty($_POST["name"])) {
                $Error = "Missing Name";
            }
             if (empty($_POST["location"])) {
                $Error = "Missing Location";
            }
             if (empty($_POST["language"])) {
                $Error = "Missing language";
            } 
             if (empty($_POST["cookies"])) {
                $Error = "Select cookies";
            } 
        }else{
         $name = $_POST['name'];
         $location = $_POST['location'];
         $language = $_POST['language'];
         $comment = $_POST['comment'];
         $cookies = $_POST['cookies'];
    }
if($Error!=""){
   header("Location:form.php?error=".$Error);
 }
    ?>
    <h2>Submitted Information:</h2>
    <p><?php echo "NAME: {$name}"; ?> </p>
    <p><?php echo "DOJO LOCATION: {$location}"; ?></p>
    <p><?php echo "FAVORITE LANGUAGE: {$language}:"; ?> </p>
    <p><?php echo "COMMENT: {$comment}"; ?></p>
     <p><?php echo "COOKIES: {$cookies}"; ?></p>

知道吗?

process.php中尝试类似的操作

 if($Error!=""){
   header("Location:form.php?error=".$Error);
 }

表单.php上

 if(isset($_GET['error']) &&  $_GET['error']!=""){
  echo  $_GET['error'];
 }

在您的进程中.php将代码更改为

 <?php 
        if (isset($_POST["submit"])) {
            $Error ="";
            if (isset($_POST["name"]) &&  $_POST["name"]!="") {
                $Error = "Missing Name";
            }
             if (isset($_POST["location"]) &&  $_POST["location"]!="") {
                $Error = "Missing Location";
            }
             if (isset($_POST["language"]) &&  $_POST["language"]!="") {
                $Error = "Missing language";
            } 
             if (isset($_POST["cookies"]) &&  $_POST["cookies"]!="") {
                $Error = "Select cookies";
            }  
            if($Error!=""){
               header("Location:form.php?error=".$Error);
             }
             $name = $_POST['name'];
             $location = $_POST['location'];
             $language = $_POST['language'];
             $comment = $_POST['comment'];
             $cookies = $_POST['cookies'];
        } 
 ?>

您需要一个表单重定向回您的form.php,或者将echo $Error移动到您的process.php,以便显示该页面中的错误。