2016-08-03 3 views
-1

현재 php와 mysql을 사용하여 프로젝트를 진행 중입니다. PHP를 처음 접했을 때 양식 작업이 완료되기 전에 양식에서 오류를 검사 할 수 있기를 원합니다. 양식 작업은 mySQL 데이터베이스로 정보를 전송하는 것입니다.PHP MySQL 폼 유효성 확인

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

$FirstName1Err = $LastName1Err = $Email1Err = $Phone1Err = $productsErr = $Size1Err = $Quantity1Err = $Price1Err = ""; 

if (empty($_POST['FirstName1'])) { 
$FirstName1Err = "Your first name is required"; } 

if (empty($_POST['LastName1'])) { 
$LastName1Err = "Your last name is required"; } 

if (empty($_POST['Email1'])) { 
$Email1Err = "Your email is required"; } 

if (empty($_POST['Phone1'])) { 
$Phone1Err = "Your phone number is required"; } 

if (empty($_POST['products'])) { 
$productsErr = "Choosing a product is required"; } 

if (empty($_POST['Size1'])) { 
$Size1Err = "Choosing a size is required"; } 

if (empty($_POST['Quantity1'])) { 
$Quantity1Err = "Choosing a quantity is required"; } 

if (empty($_POST['Price1'])) { 
$Price1Err = "Choosing a price is required"; } 

} 

session_start(); 
require 'NFTconnect2.php'; 

$epr=''; 
$msg=''; 

if(isset($_GET['epr'])) 
$epr=$_GET['epr']; 



if($epr=='save') 
    { 
     $FirstName1 = $_POST['FirstName1']; 
     $LastName1 = $_POST['LastName1']; 
     $Email1 = $_POST['Email1']; 
     $Phone1 = $_POST['Phone1']; 
     $products = $_POST['products']; 
     $Size1 = $_POST['Size1']; 
     $Quantity1 = $_POST['Quantity1']; 
     $Price1 = $_POST['Price1']; 

$a_sql=mysqli_query($con, "INSERT INTO Inventory VALUES('','$FirstName1','$LastName1', '$Email1', '$Phone1', '$products', '$Size1', '$Quantity1', '$Price1')"); 

     if($a_sql) 
      $msg='Your order was successful!'; 
     else 
      $msg= 'Your order was not successful! '; 

    } 

기본적으로 내 질문은 : 검증을 통과하면 그때 내가 코드의 두 번째 부분을 실행할 수 있습니다, 첫째 후 검증을위한 양식을 확인할 수 있도록 내가 "만약"문을 쓸 수있는 방법. 사전

+0

session_start()는 파일의 bigin을 넣어야합니다. –

+0

if ($ err1 || $ err2 || ...) –

+0

내 대답 좀보세요 :) –

답변

0

감사, 당신은 오류를 추가하는 각 라인에 대한 $hasError = false;

라고 시작 부분에 변수를 추가 같은 $hasError = true; 설정 : 다음

if (empty($_POST['FirstName1'])) { 
$FirstName1Err = "Your first name is required"; 
$hasError = true;} 

if (empty($_POST['LastName1'])) { 
$LastName1Err = "Your last name is required"; 
$hasError = true;} 

//ETC 

을에서 코드의 두 번째 부분 포장 if과 같이 :

if (!$hasError) { //If hasError is still false 
    //Do stuff 
} 

나는 EAC의 유효성을 검사 훨씬 더 효율적인 방법이 있다는 것을 언급 할 의무를 느끼는가 h 필드, 이건 당신의 걱정이나 질문이 아니기 때문에 나는 대답을 떠날 것입니다. :)

0

if 문장의 여러 게시물 중에서 input이 비어 있는지 확인하기보다는 배열로 당신의 input의 이름 : 그럼

$required = array('input1', 'input2', 'input3'); // change input1, input2... to what you require 

, 다시 확인하기 위해 foreach 루프를 사용하고 입력이되는 $required 배열의 내부에있는 (비어 있는지 여부를 참조하십시오

foreach($_POST as $key=>$value){ 
    if(empty($value) && in_array($key, $required){ 
     $errors = true; // set errors to true 
     echo $key . 'Is required.' // output error 
    } 
} 

이제 유효성 검사가 통과되었는지 확인하려면 $errors이 설정되지 않았는지 확인하십시오.

if(!$errors){ 
    // validation passed 
} 

분명히,이 코드는 필요에 맞게 조정할 수 있습니다. 하지만 도움이 필요하면 의견을 말하면 도움이되도록 최선을 다해 답변 해 드리겠습니다.

희망이 있으면 시간이 절약됩니다.

-2

백엔드에서 유효성 검사를 수행하는 대신 유효성 검사를 위해 Javascript를 사용하는 것이 좋습니다. .

예 :


validateForm 함수() {
VAR의 validateFname =하고 document.forms [ "myForm을"[ ", FIRSTNAME2"] 값;
if (validateFname == null || validateFname == "") {
경고 ("이름을 입력해야합니다");
false를 반환합니다.

+0

클라이언트 쪽 유효성 검사를 신뢰할 수 없다면 그는 여전히 백엔드 유효성 검사를 수행해야합니다 – dramzy

+0

할 일이 무엇이든간에 ... 하하하 – JohnStands