如何通过工作表单验证将HTML从PHP中分离出来


how to separate html from php with working form validation

我是php新手。我正在为我的实践工作一个简单的联系形式。它工作得很好,正是我想要的方式,但当我试图从我的form .php文件中分离html并将其粘贴在process.html中,然后按下提交按钮,而不填写任何字段时,表单提交而不进行表单验证,空数据不插入数据库中。

所有我想做的是保持html和php都是单独的文件,并希望使用表单验证提交表单我做了。有任何帮助请????

我的代码

Form.html

<?php require_once "process.php";?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<link href="style.css" rel="stylesheet" type="text/css" media="all">
</head>
<body>
<div id="form_container">
    <?php $arrmessage = "" ?>
    <div style="color:#F00"><?php if($arrmessage !=""){ echo $arrmessage; }?        ></div>
        <div id="form_heading">New User Registration</div>
        <form name="form1" id="form1" action="process.php?value=submit"     method="post">
    <div class="row_a">
        <div class="cell cell_left">Student Name</div>
        <div class="cell cell_right">
        <input type="text" id="student_name" name="student_name" value="" placeholder="Student Name">
        </div>
        <div class="clear_box"></div>
    </div>
    <div class="row_b">
        <div class="cell cell_left">Email</div>
        <div class="cell cell_right">
        <input type="email" id="email" name="email" value="" placeholder="Email">
        </div>
        <div class="clear_box"></div>
    </div>
    <div class="row_a">
        <div class="cell cell_left">Contact Number</div>
        <div class="cell cell_right">
        <input type="text" id="contact_number" name="contact_number" value="" placeholder="Contact Number">
        </div>
        <div class="clear_box"></div>
    </div>
    <div class="row_b">
        <div class="cell cell_left">Gender:</div>
        <div class="cell cell_right">Male
        <input type="radio" name="gender" value="Male" / >  
        Female
        <input type="radio" name="gender" value="Female" / >
        </div>
        <div class="clear_box"></div>
    </div>
    <div class="row_a">
        <div class="cell cell_left">Interest:</div>
        <div class="cell cell_right">
        Laptop<input type="checkbox" id="" name="interest[]" value="laptop" >
        I-Pad<input type="checkbox" id="" name="interest[]" value="ipad" >
        Mobile<input type="checkbox" id="" name="interest[]" value="mobile" >
        </div>
        <div class="clear_box"></div>
    </div>
    <div class="row_b">
        <div class="cell cell_left">Date of Birth</div>
        <div class="cell cell_right">
        <select name="day">
            <option value="">Day</option>
            <option>1</option>
            <option>2</option>
            <option>3</option>
        </select>-
        <select name="month">
            <option value="">Month</option>
            <option>January</option>
            <option>February</option>
            <option>March</option>
        </select>-
        <select name="year">
            <option value="">Year</option>
            <option>2001</option>
            <option>2002</option>
            <option>2003</option>
        </select>
        </div>
        <div class="clear_box"></div>
    </div>
    <div class="row_a">
        <div class="cell cell_left">Street Adress</div>
        <div class="cell cell_right">
        <textarea id="street_adress" name="street_adress" placeholder="Street Adress"></textarea>
        </div>
        <div class="clear_box"></div>
    </div>
    <div class="row_b">
        <div class="cell cell_left">City</div>
        <div class="cell cell_right">
        <input type="text" id="city" name="city" value="" placeholder="City" >
        </div>
        <div class="clear_box"></div>
    </div>
    <div class="row_a">
        <div class="cell cell_left">State</div>
        <div class="cell cell_right">
        <input type="text" id="state" name="state" value="" placeholder="State" >
        </div>
        <div class="clear_box"></div>
    </div>
    <div class="row_b">
        <div class="cell cell_left">Country</div>
        <div class="cell cell_right">
        <select name="country">
             <?php  foreach($countries as $list) echo "<option>". $list ."<br/>" . "</option>"; ?>          
            </select>            
                </div>
                <div class="clear_box"></div>
        </div>
        <div class="row_a">
            <div class="cell cell_right">
            <input name="submit" id="submit" type="submit" value="Submit">
            <br/>
            </div>
            <div class="clear_box"></div>
        </div>
      </form>
    <br/><a href="logout.php">Log Out</a>
    </div>
</body>
</html>

process.php

    <?php
    session_start();
    require_once("database.php");
            if(!isset($_SESSION['user_id']) && empty($_SESSION['user_id'])){
                            header("Location:login.php");
                            exit;
                        }
                        if(isset($_REQUEST['value'])){
                        //exit;
                    if (isset($_POST['submit']))
                {   
                    if(empty($_POST['student_name'] )){
                        $arrmessage = "Please Enter Student Name";
                    }elseif(empty($_POST['email'] )){
                        $arrmessage = "Please Enter Email";
                    }elseif(empty($_POST['contact_number'] )){
                        $arrmessage = "Please Enter Contact Number";
                    }elseif(empty($_POST['gender'] )){
                        $arrmessage = "Please Select Gender";
                    }elseif(empty($_POST['interest'] )){
                        $arrmessage = "Please Select interest";
                    }elseif(empty($_POST['day'])){
                        $arrmessage = "Please Enter Day";                   
                    }elseif(empty($_POST['month'])){
                        $arrmessage = "Please Enter Month";
                    }elseif(empty($_POST['year'])){
                        $arrmessage = "Please Enter Year";
                    }elseif(empty($_POST['street_adress'] )){
                        $arrmessage = "Please Enter street_adress";
                    }elseif(empty($_POST['city'])){
                        $arrmessage = "Please Enter City";
                    }elseif(empty($_POST['state'] )){
                        $arrmessage = "Please Enter State";
                    }elseif(empty($_POST['country'] )){
                        $arrmessage = "Please Enter Country";
                    }else{
                        $arrmessage ="";    
                }
                if($arrmessage =="")
            {       
                $student_name = $_POST['student_name']; 
                $email = $_POST['email'];
                $contact_number = $_POST['contact_number'];
                $gender = $_POST['gender'];
                $interest = $_POST['interest'];
                $checked ="";
                foreach($interest as $list){$checked .= $list .",";}
                $DOB = $_POST['day'].'-'.$_POST['month'].'-'.$_POST['year'];
                $street_adress = $_POST['street_adress'];
                $city = $_POST['city'];
                $state = $_POST['state'];
                $country = $_POST['country'];
        $sql = "INSERT INTO form (student_name,email,contact_number,gender,interest,DOB,street_adress,city,state,country)VALUES('{$student_name}','{$email}','{$contact_number}','{$gender}','{$checked}','{$DOB}','{$street_adress}','{$city}','{$state}','{$country}')";
            mysql_query($sql);
            if(mysql_insert_id() != ""){
                    echo "Records inserted successfully.";
                    }
                    header("Location:views.php");
                    exit;
                }
            }
                }
    $countries = array("Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia and Herzegowina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory", "Brunei Darussalam", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde", "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo", "Congo, the Democratic Republic of the", "Cook Islands", "Costa Rica", "Cote d'Ivoire", "Croatia (Hrvatska)", "Cuba", "Cyprus", "Czech Republic", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Falkland Islands (Malvinas)", "Faroe Islands", "Fiji", "Finland", "France", "France Metropolitan", "French Guiana", "French Polynesia", "French Southern Territories", "Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Heard and Mc Donald Islands", "Holy See (Vatican City State)", "Honduras", "Hong Kong", "Hungary", "Iceland", "India", "Indonesia", "Iran (Islamic Republic of)", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea, Democratic People's Republic of", "Korea, Republic of", "Kuwait", "Kyrgyzstan", "Lao, People's Democratic Republic", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libyan Arab Jamahiriya", "Liechtenstein", "Lithuania", "Luxembourg", "Macau", "Macedonia, The Former Yugoslav Republic of", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia, Federated States of", "Moldova, Republic of", "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "Northern Mariana Islands", "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Pitcairn", "Poland", "Portugal", "Puerto Rico", "Qatar", "Reunion", "Romania", "Russian Federation", "Rwanda", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Seychelles", "Sierra Leone", "Singapore", "Slovakia (Slovak Republic)", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "Spain", "Sri Lanka", "St. Helena", "St. Pierre and Miquelon", "Sudan", "Suriname", "Svalbard and Jan Mayen Islands", "Swaziland", "Sweden", "Switzerland", "Syrian Arab Republic", "Taiwan, Province of China", "Tajikistan", "Tanzania, United Republic of", "Thailand", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "Virgin Islands (British)", "Virgin Islands (U.S.)", "Wallis and Futuna Islands", "Western Sahara", "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"); 
    ?>

不能在html文件中执行php代码。因此,将form.html文件扩展名改为form.php如果发生错误,当你从process.php重定向到form.php时,传递一个get参数。

检查get参数是否在form.php中可用,然后呈现消息

       if($arrmessage =="")
        {       
            $student_name = $_POST['student_name']; 
            $email = $_POST['email'];
            $contact_number = $_POST['contact_number'];
            $gender = $_POST['gender'];
            $interest = $_POST['interest'];
            $checked ="";
            foreach($interest as $list){$checked .= $list .",";}
            $DOB = $_POST['day'].'-'.$_POST['month'].'-'.$_POST['year'];
            $street_adress = $_POST['street_adress'];
            $city = $_POST['city'];
            $state = $_POST['state'];
            $country = $_POST['country'];
    $sql = "INSERT INTO form (student_name,email,contact_number,gender,interest,DOB,street_adress,city,state,country)VALUES('{$student_name}','{$email}','{$contact_number}','{$gender}','{$checked}','{$DOB}','{$street_adress}','{$city}','{$state}','{$country}')";
        mysql_query($sql);
        if(mysql_insert_id() != ""){
                echo "Records inserted successfully.";
                }
                header("Location:views.php");
                exit;
         } else {
                 header("Location:form.php?error=1&msg=$arrmessage");
         }

在form.php文件中,您需要检查get if $_GET['error']然后显示您在$_GET['msg']中获得的消息