2016-08-03 18 views
-1

В настоящее время я работаю над проектом с php и mysql. Я очень новичок в PHP, и я хочу проверить форму для ошибок до того, как действие формы будет завершено. (Действие формы отправляет информацию в базу данных mySQL).PHP Form form validation

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

Вместо того, чтобы проверять, все ли ваши input s пустые на почте из букета if заявлений, поместите все имена ваших 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() {
вар validateFname = document.forms [ "MyForm"] [ "FIRSTNAME1"] значение;
if (validateFname == null || validateFname == "") {
предупреждение («Имя должно быть заполнено»);
return false;
}
}

+0

Проверка на стороне клиента не может быть проверена, ему все равно нужно будет сделать проверку подлинности – dramzy

+0

не на том, что он пытается сделать ... hahaha – JohnStands