3

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.

1
  • 1
    Just trim variable before you validate it
    – zerkms
    Commented Mar 25, 2012 at 23:21

4 Answers 4

4

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)) ;
}
0
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.

1
  • . is not the member access operator in PHP, and strings have no properties in PHP, and that condition is incorrect regardless. Try strlen(trim($_POST['address'])) === 0.
    – Ry-
    Commented Mar 25, 2012 at 23:23
0

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.)

0
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

Not the answer you're looking for? Browse other questions tagged or ask your own question.