PHP Form Validation: Removing whitespace

This entry is part 4 of 7 in the series PHP Form Validation

When validating elements (particularly string elements), it is often helpful to remove leading and trailing whitespace with the trim() function.

You can combine this with the strlen() test for required elements to disallow an entry of just space characters.

The combination of trim() and strlen() is shown below:


// Logic to do the right thing based on
// the hidden submit_check parameter
if ($_POST['submit_check']) {
    // If validate_form( ) returns errors, pass them to show_form( )
    if ($form_errors = validate_form()) {
    } else {
} else {

// Do something when the form is submitted
function process_form()
    print 'Hello, ' . $_POST['my_name'];
    print '<br>';
    print 'Your email is, ' . $_POST['email'];

// Display the form
function show_form($errors = '')
    // If some errors were passed in, print them out
    if ($errors) {
        print 'Please correct these errors: <ul><li>';
        print implode('</li><li>', $errors);
        print '</li></ul>';

    print <<< html_output
<form method='POST' action='$_SERVER[PHP_SELF]'>
Your name: <input type='text' name='my_name'>
Your email: <input type='text' name='email'>
<input type='submit' value='Say Hello'>
<input type='hidden' name='submit_check' value='1'>

// Check the form data
function validate_form()
    // Start with an empty array of error messages
    $errors = array();

    // Add an error message if the name is too short
    if (strlen(trim($_POST['my_name'])) < 3) {
        $errors[0] = 'Your name must be at least 3 letters long.';
    if (strlen($_POST['email']) == 0) {
        $errors[1] = 'You must enter an email address.';

    // Return the (possibly empty) array of error messages
    return $errors;