Checking for unfilled fields with PHP

2019-09-06 17:31发布

问题:

I am creating a checkout page that requires the client to fill out his personal information as well as his credit card details (this part using stripe).

I was wondering, what is the best way to check whether the fields are filled up or not? Shall I do it in the processingPayment.php that $_POSTs the fields and processes payment, and in case the fields were not filled, I would redirect back to checkout?

Or is it a better idea to use js to check on the spot before submitting the form?

if in the processing page, I would try something like this:

if (empty($firsName) || empty($lastName) || empty($address) || empty ($city) || empty ($state) || empty($zip))
{
header('Location: checkout.php');
}

But I would need to re-send the values that were entered so the checkout page receives them and the user doesn't have to re-fill every field again...

回答1:

Something like this?

foreach($_POST as $key=>$val) {
    if( empty($val) ) {
        echo "$key is empty";
    }
}

The best method with PHP is to have an array of possible arguments:

$array = array('firstName', 'lastName');

foreach($array as $val) {
    if( empty($_POST[$val]) ) {
        echo "$val is empty";
    }
}

Otherwise, client side validation works too, but can always be disabled. To be completely safe, use both client and server side.



回答2:

You can use the session to store the entered data, but you would need to check each value separately:

PHP

<?php
session_start();

foreach ($_POST as $key => $value) {
    if (strlen(trim($value)) <= 0) {    //You could replace '0'
        $_SESSION[$key] = $value;
    }
}

?>

FORM

<form>
First name: <input type="text" value="<?php $_SESSION['firstName'] ? $_SESSION['firstName'] : ''; ?>" placeholder="First Name" />
....
</form>

The $_SESSION['firstName'] ? $_SESSION['firstName'] : ''; is the same as

if ($_SESSION['firstName']) return $_SESSION['firstName']
else return '';

it is more readable in the HTML(View) that the full if statement



回答3:

$var  = isset($_POST['field'])  ? $_POST['field']  : '';
$var2 = isset($_POST['field2']) ? $_POST['field2'] : '';
// and so on

if( empty($var) || empty($var2) )
{
   //it's empty
}


标签: php forms field