簡體   English   中英

表單正在提交到另一個頁面而未在php中進行驗證

[英]Form is submitting to another page without validation in php

這是我用於在線注冊的代碼
當我提交另一頁時驗證不起作用,表單未經任何驗證而提交到另一頁。我只需要知道如何通過驗證來提交它,有人可以幫忙嗎

<?php
// define variables and set to empty values
$nameErr = $cnameErr = $mobilenoErr = $emailErr = $cityErr= $postalcodeErr = $addressErr = "";

$name = $cname = $mobileno = $email = $city= $postalcode = $address = "";


if ($_SERVER["REQUEST_METHOD"] == "POST") {
   if (empty($_POST["name"])) { 
     $nameErr = "Name is required";
   } else {
     $name = test_input($_POST["name"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
       $nameErr = "Only letters and white space allowed"; 
     }
   }

   if (empty($_POST["cname"])) {
     $cnameErr = "Company Name is required";
   } else {
     $cname = test_input($_POST["cname"]);
   }

   if (empty($_POST["mobileno"])) {
     $mobilenoErr = "Mobile Number is required";
   }else {
     $mobileno = test_input($_POST["mobileno"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^[789][0-9]{9}$/",$mobileno)) {
       $mobilenoErr = "Not A Valid Number"; 
     }
   }

   if (empty($_POST["email"])) {
     $emailErr = "Email is required";
   } else {
     $email = test_input($_POST["email"]);
     // check if e-mail address is well-formed
     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
       $emailErr = "Invalid email format"; 
     }
   }
   if (empty($_POST["city"])) {
     $cityErr = "City is required";
   }  else {
     $city = test_input($_POST["city"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^[a-zA-Z ]*$/",$city)) {
       $cityErr = "Only letters and white space allowed"; 
     }
   }
   if (empty($_POST["postalcode"])) {
     $postalcodeErr = "Postal Code is required";
   } else {
     $postalcode = test_input($_POST["city"]);
   }

   if (empty($_POST["address"])) {
     $addressErr = "Address is required";
   } else {
     $address = test_input($_POST["address"]);
   }
}


function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}
?>
<div class="gridContainer clearfix">
  <div id="div1" class="fluid"><!-- header ends here-->
    <div id="header" class="fluid">
      <div class="fluid logo_container zeroMargin_tablet">
      <div class="fluid logo_mvc"></div>
      <!-- logo_mvc ends here-->
      <div class="fluid logo_gsm"></div>
      <!-- logo_gsm ends here-->
    </div>
    <!-- logo_container ends here-->
</div>
    <div class="fluid imageslide zeroMargin_desktop">
      <div class="fluid imageslide_gs zeroMargin_desktop"></div>
      <!-- imageslide_gs ends here-->
      <div class="fluid imageslide_content">
      <h1>IP Product Introduction and VoIP PBX
Appliance Training Day @ Toronto</h1>
      </div><!-- imageslide_content ends here-->
      <div class="fluid imageslide_product"></div>
      <!-- imageslide_product ends here-->
    </div><!-- imageslide ends here-->
    <div class="fluid content">
    <div class="fluid content_det">
    <h3>Event information</h3>
    <p>Please join us at the Fairfield Inn & Suites Toronto Airport where Grandstream will offer four different sessions during the day. </p>
    <h3>Introduction to Grandstream IP products</h3>
    <p><b>8:45am - 10:15am</b><br/>
Introduction to Grandstream, and basic information on Grandstream products including ATAs, gateways, routers and telephones. </p>
<h3>Introduction to IP cameras IP and Surveillance products</h3>
    <p><b>12:45pm - 2:15pm</b><br/>
Basic information on IP cameras and surveillance products, and the introduction of the brand new GVR3550 Network Video Recorder. </p>
<h3>Advanced Technical Training for UCM VoIP PBX's</h3>
    <p><b>2:30pm - 4:30pm</b><br/>
This session will focus on the advanced features of the UCM series, including the new features of the upcoming software and the brand new UCM6510 VoIP PBX for T1 networks. </p>
    </div><!-- content_det ends here--><div class="fluid contet_form">
    <h2>Register Now</h2>
    <form method="post" action="Submission.php">
    <div class="fluid div_form"><label><b>First name *:</b></label>
    <input type="text" size="20px" name="name" placeholder="Enter Your Name Here" value="<?php echo $name; ?>"/><span class="error"><?php echo $nameErr;?></span>

    </div>


    <div class="fluid div_form"><label><b>Company Name *:</b></label>
    <input type="text" size="20px" name="cname" placeholder="Enter Your Company Name Here" value="<?php echo $cname; ?>"/><span class="error"><?php echo $cnameErr;?></span></div>

    <div class="fluid div_form"><label><b>Mobile Number *:</b></label>
    <input type="text" size="20px" name="mobileno" placeholder="Enter Your Mobile Number Here" value="<?php echo $mobileno; ?>"/><span class="error"><?php echo $mobilenoErr?></span>
     </div>

    <div class="fluid div_form"><label><b>Email Id *:</b></label>
    <input type="email" size="20px" name="email" placeholder="Enter Your Email Id Here" value="<?php echo $email; ?>"/><span class="error"><?php echo $emailErr?></span></div>


    <div class="fluid div_form"><label><b>City *:</b></label>
    <input type="text" size="20px" name="city" placeholder="Enter Your City Name Here" value="<?php echo $city;?>"/><span class="error"><?php echo $cityErr?></span></div>

    <div class="fluid div_form"><label><b>Postal Code *:</b></label>
    <input type="text" size="20px" name="postalcode" placeholder="Enter Postal Code Here" value="<?php echo $postalcode; ?>"/><span class="error"><?php echo $postalcodeErr?></span>
     </div>

    <div class="fluid div_form"><label><b>Address *:</b></label>
    <input type="text" size="20px" name="address" placeholder="Enter Address Here" value="<?php echo $address; ?>"/><span class="error"><?php echo $addressErr?></span></div>


<button name="submit">Submit</button>
    </form>
    </div><!-- contet_form ends here-->
    </div><!-- content ends here-->
  </div><!-- div1 ends here-->
</div>
</body>

當請求到達服務器時,必須進行驗證。 您的流程就像:

瀏覽器中顯示的表單->用戶單擊提交->提交到Submission.php的數據->驗證應在此處進行。

將您的驗證代碼放在Submission.php中。

仔細檢查表單屬性中的操作。 如果您在表單屬性中提及頁面名稱,則它將提交另一個頁面而不進行驗證。 如果要在同一頁面中進行驗證,則從表單屬性中的操作中刪除頁面名稱。 在其他頁面上進行其他明智的驗證檢查,這是您在form屬性中的操作中提到的內容。

您可以使用jquery來驗證您的表單

這里有一個很好的例子給你點擊我

希望這對您有幫助

對我來說,您似乎是PHP表單處理的新手。 對於初學者來說,重新發明輪子是很危險的,因為很容易在腳本中發現安全漏洞。 使用可以為您處理表單的框架或CMS(例如WordPressContact Form 7),或者僅使用簡單的Zebra Form或諸如CakePHPLaravelSymfony之類的完整表單

除非您真的知道自己在做什么,否則不要自己做任何事情。 可能需要一些時間才能上手,但從長遠來看肯定會有所收獲。

暫無
暫無

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

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