2015-07-20 38 views
2

我有一個html表單,我要3個字段爲必填字段。如果用戶沒有填寫這些字段中的任何一個,則表單不應該被提交,並且它應該告訴用戶填寫必填字段。我用過PDO,我不知道該怎麼做。如果有人能幫助我。在下面我已經給我的HTML和PHP文件。使用PHP PDO的html表單中的必填字段

HTML:

<html> 
<head> 
<title>Data Insertion</title> 
</head> 
<body> 
<p><span class="Error">* required field.</span></p> 
<form method="post" action="su.php"> 
<h2>Please Fill In Details</h2> 
<label for="name">Name </label> 
<input type="text" Placeholder="Enter your name" name="name" id="name" /> 
<span class="Error">*</span> 
<br /> 
<br /> 
<label for="age">Age </label> 
<input type="text" name="age" id="age" placeholder="Enter your age" /> 
<br /> 
<br /> 
<label for="mailid">MailId </label> 
<input type="text" name="mailid" id="mailid" placeholder="Enter your Mail Id" /> 
<span class="Error">*</span> 
<br /> 
<br /> 
<label for="gender">Gender </label> 
<br /> 
<label for="male">Male </label> 
<input type="radio" name="gender" id="gender" value="Male" id="male" /> 
<label for="female">Female </label> 
<input type="radio" name="gender" id="gender" value="Female" id="female" /> 
<br /> 
<br /> 
<label for="qualification">Qualification </label> 
<select name="qualification" value="Qualification" id="qualification"> 
<option value="B.E">SSLC</option> 
<option value="P.G">HSC</option> 
<option value="SSLC">UG</option> 
<option value="HSC">PG</option> 
</select> 
<br /><br /> 
<label for="hobbies">Hobbies </label> 
<br /> 
<input type="checkbox" name="hobbies" id="hobbies" value="Cricket" />Cricket 
<input type="checkbox" name="hobbies" id="hobbies" value="Music" />Music 
<input type="checkbox" name="hobbies" id="hobbies" value="Swimming" />Swimming 
<br /><br /> 
<label for="textarea">Address </label> 
<br /> 
<textarea name="address" id="textarea" rows="15" cols="30"></textarea> 
<span class="Error">*</span> 
<br /><br /> 
<input type="submit" name="submit" value="Submit" /> 
</form> 
</body> 
</html> 

PHP:

<?php 
    $servername = 'localhost'; 
    $username = 'root'; 
    $password = ''; 
    try { 
     $conn = new PDO("mysql:host=$servername;dbname=testing", $username, $password); 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     if(isset($_POST['submit'])){ 
      $name = $_POST['name']; 
      $age = $_POST['age']; 
      $mailid = $_POST['mailid']; 
      $gender = $_POST['qualification']; 
      $hobbies = $_POST['address']; 
      if($name !='' || $mailid !='' || $address !=''){ 
     $sql = "Insert into user (Name, Age, MailId, Gender, Qualification, Hobbies, Address) 
     values ('".$_POST["name"]."', '".$_POST["age"]."', '".$_POST["mailid"]."', '".$_POST["gender"]."', '".$_POST["qualification"]."', '".$_POST["hobbies"]."', '".$_POST["address"]."')"; 
     $conn->exec($sql); 
     echo "Thank you for registering"; 
      } else { 
       echo "<p>Insertion failed <br/> Please enter the required fields !"; 
      }} 
    } 
catch(PODException $e) 
{ 
    echo $sql . "<br>" . $e->getMessage(); 
} 
?> 
+0

你必須使用JavaScript的。 – Jens

+0

即使您可以使用html5屬性。 –

+0

我想用PHP來做到這一點。不想使用「必需的屬性」。 –

回答

0

嘗試增加上所需的所有輸入元件 「所要求的」 HTML 5屬性。例如

<input type="text" Placeholder="Enter your name" name="name" id="name" required /> 

您還應該檢查php代碼中的POST變量,因爲這並不能真正阻止某人濫用您的服務。防爆。

if(!isset($_POST['somevar'])) { 
    // Do insert 
} 
+0

我已經完成了html 5所需的屬性。現在我的疑問是如何使用PHP PDO來做到這一點。 –

+0

你在PHP或PDO中意味着什麼?我認爲你很困惑/讓事情變得更難。如果你的意思是PDO,你應該考慮使用準備好的語句來進行查詢,因爲它更安全。 – soaP

0

在HTML中你應該使用JavaScript(例如jQuery的)來控制onsubmit事件和驗證,如果必填字段都充滿了正確的價值觀,檢查此鏈接:jQuery.submit()

在PHP你應該檢查和驗證每個變種在創建並執行查詢之前。它簡單的文章是在這裏:Sanitize and Validate Data with PHP Filters 這將是很好的開始,我認爲;)

查詢字符串應該包含佔位符,然後聲明應執行的準備,檢查此鏈接: PDOStatement::bindParam