PHP 简单表单验证

标签 php css validation

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

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

这是 form.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>

这是 process.php:

<?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);
 }

在你的form.php

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

在您的 process.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'];
        } 
 ?>

关于PHP 简单表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31221938/

相关文章:

css - 如何在典型布局中设置多个 div

带返回值的 Java 错误/异常处理

php - Laravel Mime 类型验证(KML 文件)

php - MySQL 学说 YAML

html - CSS-HTML : Inline box expands larger than expected?

javascript - 不使用提交按钮提交表单

css - 使用多个 css 类进行过渡

jquery - 将 jQuery UI CSS 应用于 MVC .input-validation-error

php - 404 未找到页面不适用于我的 .htaccess

javascript - 为什么当我将变量放入 foreach 和 for 循环中时我的脚本停止运行