2016-09-08 5 views
0

필자는 PHP 양식을 가지고 있지만 필수 입력란을 작성하지 않아도 제출합니다. 왜 그럴 수 있니? 나는 PHP 개발자가 아니며 왜 작동하지 않는지도 모르겠다. 제게 알려줄 수있는 코드 스 니펫을 어디에 추가할지 알려주세요. 내가 시도한 것을 증명하고, 내가 어느 정도 이야기하고 있는지를 알기 위해, 나는 그 문제와 관련이있는 코드만을 여기에 보여주고있다.필수 입력란을 무시한 PHP 양식

<?php 

require 'xxxxxxx.php'; 


$fnameErr = ""; 


     if(isset($_POST['add'])) { 


     if (empty($_POST["fname"])) { 
    $fnameErr = "Name is required"; 
    exit(); 
}else { 
    $fname = check_input($_POST['fname']); 
    } 


     $lname = check_input($_POST['lname']); 
     $phone = check_input($_POST['phone']); 
     $email = check_input($_POST['email']); 


$sql = " INSERT INTO QuotesInfo (fname, lname, phone, email, doservice, etype, rtype, 
ptime, paddress, rtime, daddress, vtype, pcount, addetails, heardwhere) 
VALUES ('".$_POST["fname"]."','".$_POST["lname"]."','".$_POST["phone"]."',' 
".$_POST["email"]."','".$_POST["doservice"]."','".$_POST["etype"]."','".$_POST["rtype"]."','".$_POST["ptime"]."',' 
".$_POST["paddress"]."','".$_POST["rtime"]."','".$_POST["daddress"]."','".$_POST["vtype"]."','".$_POST["pcount"]."',' 
".$_POST["addetails"]."','".$_POST["heardwhere"]."') "; 


$msg= $fname . " " . $lname . "\r\n" . $phone . "\r\n" . $email . "\r\n" . $doservice . "\r\n" . $etype . "\r\n" . $rtype . "\r\n" . $ptime . "\r\n" . $paddress . "\r\n" . $rtime . "\r\n" . $daddress . "\r\n" . $vtype . "\r\n" . $pcount . "\r\n" . $addetails . "\r\n" . implode(", ", $heardwhere); 
$headers = "From: $from"; 


<form id="form1" name="form1" method = "post" action = "<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
<label for="fname">First Name</label><input type="text" name="fname" id="fname" /> 
<span class="error">* <?php echo $fnameErr;?></span> 
<br class="clear" /> 
+0

웹 페이지 - 프런트 엔드에 일종의 JS 유효성 검사가 있습니까? –

+0

아니요, 유효성 검사는 특수 문자 <> –

답변

0

코드에 구문 오류가 많습니다. 여기에서, 청소 버전 당신이 그것을 사용하기 전에 확인하시기 바랍니다됩니다 :

<?php 

    require 'xxxxxxx.php'; 


    $fnameErr = ""; 


    if(isset($_POST['add'])) { 

     if (empty($_POST["fname"])) { 

      $fnameErr = "Name is required"; 

      exit(); 

     } else { 

      $fname = check_input($_POST['fname']); 

     } 

     $lname = check_input($_POST['lname']); 

     $phone = check_input($_POST['phone']); 

     $email = check_input($_POST['email']); 


     $sql = "INSERT INTO QuotesInfo 
       (fname, lname, phone, email, doservice, etype, rtype, ptime, paddress, rtime, daddress, vtype, pcount, addetails, heardwhere) 
       VALUES 
       ('".$_POST["fname"]."', 
       '".$_POST["lname"]."', 
       '".$_POST["phone"]."',' 
       '".$_POST["email"]."', 
       '".$_POST["doservice"]."', 
       '".$_POST["etype"]."', 
       '".$_POST["rtype"]."', 
       '".$_POST["ptime"]."', 
       '".$_POST["paddress"]."', 
       '".$_POST["rtime"]."', 
       '".$_POST["daddress"]."', 
       '".$_POST["vtype"]."', 
       '".$_POST["pcount"]."', 
       '".$_POST["addetails"]."', 
       '".$_POST["heardwhere"]."')"; 

     $msg= $fname . " " . $lname . "\r\n" . $phone . "\r\n" . $email . "\r\n" . $doservice . "\r\n" . $etype . "\r\n" . $rtype . "\r\n" . $ptime . "\r\n" . $paddress . "\r\n" . $rtime . "\r\n" . $daddress . "\r\n" . $vtype . "\r\n" . $pcount . "\r\n" . $addetails . "\r\n" . implode(", ", $heardwhere); 

     $headers = "From: $from"; 

?> 


    <form id="form1" name="form1" method = "post" action = "<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
     <label for="fname">First Name</label> 
     <input type="text" name="fname" id="fname" required /> 
     <span class="error">* <?php echo $fnameErr;?></span> 
     <br class="clear" /> 
    </form> 
<?php } ?> 

required 검증에 관해서는, 당신은 필요한 양식 요소에 required 속성을 추가해야합니다.

+0

입니다. 실제로이 예제에 따라 양식 요소에 추가하지 않고 작동해야합니다. http://www.w3schools.com/php/php_form_required.asp 구문 변경없이 작동합니다. form 요소에 required를 추가합니다. 나도 그 일을 할 수 있었지만, w3school이 그 방법을 보여주지 않았기 때문에 안전성이 떨어 졌거나 뭔가 안전하지 않다고 생각했을까요? –

관련 문제