three3
three3

Reputation: 2846

PHP empty field validation

I have a enrollment form where users have to input there address. I am using PHP for validation and currently I check to make sure the field is not empty. Here is my code:

if (empty($_POST['address'])) {
    $msg = 'You must enter an address' ;
} else {
    $address = mysqli_real_escape_string($dbc, strip_tags(trim($_POST['address']))) ;
}

Now the problem is that is the user enters in a "blank" space by pressing the spacebar the filed passes validation. What I need is a way to make sure the user actually typed in a city and not just a blank space or a couple of blank spaces.

Upvotes: 3

Views: 23789

Answers (4)

SuperNoob
SuperNoob

Reputation: 392

if($_POST['submit']){
    $address = $_POST['address'];

    if (empty($address)) {
        echo "You must enter an address";
    } else {
        $address = mysqli_real_escape_string($dbc, strip_tags($user_address)) ;
    }
}

You can echo immediately the message if the field address is empty

also the $_POST['submit'] is to determine if the user click the submit button

Upvotes: 0

john_science
john_science

Reputation: 6541

You need to consider regular expressions. I would start off using a split command: split(' ', $address).
From that point, you can add one extra else if statement to test and see if the resultant string is empty.
BUT, more importantly, you will now have the tools to test the entire address string to see if it contains: a two letter state code followed by a comma, and a 5(or9) digit zip code. (I can be more specific if you like.)

Upvotes: 0

Moshe
Moshe

Reputation: 9839

You already use trim() on the insert, why not call it once in the beginning, and test that value?

$user_address = trim($_POST['address']);

if (empty($user_address)) {
    $msg = 'You must enter an address' ;
} else {
    $address = mysqli_real_escape_string($dbc, strip_tags($user_address)) ;
}

Upvotes: 4

Jürgen Paul
Jürgen Paul

Reputation: 14997

if (empty($_POST['address']) || strlen(trim($_POST['address']))==0){
    $msg = 'You must enter an address' ;
}else {
    $address = mysqli_real_escape_string($dbc, strip_tags(trim($_POST['address']))) ;
}

Trim the value.

Upvotes: 0

Related Questions