Server Side Form Validation using Regular Expressions
Wall Script
Follow Me:
Tuesday, July 07, 2009

Server Side Form Validation using Regular Expressions

Some days back I had posted " Perfect Javascript Form Validation using RegularExpressions ", one of the reader commented like this "If I disable Javascript?". So in this post I given a simple example about "Server Side Form Validation using Regular Expressions ". Take a look at live demo.

Server Side Form Validation using Regular Expressions

Download Script     Live Demo


validation.php
Contains PHP code. eregi — Case insensitive regular expression match.
<?php
if($_POST)
{
$name = $_POST['name'];
$email = $_POST['email'];
$username = $_POST['username'];
$password = $_POST['password'];
$gender = $_POST['gender'];
// Full Name
if (eregi('^[A-Za-z0-9 ]{3,20}$',$name))
{
$valid_name=$name;
}
else
{
$error_name='Enter valid Name.';
}

// Email
if (eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$', $email))
{
$valid_email=$email;
}
else
{
$error_email='Enter valid Email.';
}

// Usename min 2 char max 20 char
if (eregi('^[A-Za-z0-9_]{3,20}$',$username))
{
$valid_username=$username;
}
else
{
$error_username='Enter valid Username min 3 Chars.';
}

// Password min 6 char max 20 char
if (eregi('^[A-Za-z0-9!@#$%^&*()_]{6,20}$',$password))
{
$valid_password=$password;
}
else
{
$error_password='Enter valid Password min 6 Chars.';
}

// Gender
if ($gender==0)
{
$error_gender='Select Gender';
}
else
{
$valid_gender=$gender;
}

if((strlen($valid_name)>0)&&(strlen($valid_email)>0)
&&(strlen($valid_username)>0)&&(strlen($valid_password)>0) && $valid_gender>0 )
{
mysql_query(" SQL insert statement ");
header("Location: thanks.html");
}
else{ }

}
?>


index.php
Contains HTML code. You have to include validation.php file.
<php include("validation.php"); ?>
<form method="post" action="" name="form">
Full name : <input type="text" name="name" value="<?php echo $valid_name; ?>" />
<?php echo $error_name; ?>
Email : <input type="text" name="name" value="<?php echo $valid_email; ?>" />
<?php echo $error_email; ?>
Username : <input type="text" name="name" value="<?php echo $valid_username; ?>" />
<?php echo $error_username; ?>
Password : <input type="password" name="name" value="<?php echo $valid_password; ?>" />
<?php echo $error_password; ?>
Gender : <select name="gender">
<option value="0">Gender</option>
<option value="1">Male</option>
<option value="2">Female</option>
</select>
<?php echo $error_gender; ?>
</form>

Related posts :

Submit a Form without Refreshing page with jQuery and Ajax.
Perfect Javascript Form Validation using RegularExpressions
Was this article helpful?
Thanks! Your feedback helps us to improve 9lessons.info


39 comments:

  1. if((strlen($valid_name)>0)&&(strlen($valid_email)>0)
    &&(strlen($valid_username)>0)&&(strlen($valid_password)>0) && $valid_gender>0 )
    {
    mysql_query(" SQL insert statement ");
    header("Location: thanks.html");
    }
    else{ }

    }

    You don't need else {}

    ReplyDelete
  2. its cool, @Srinivass all the credits for you man!, hope more interesting topics will come on this blogger!

    ReplyDelete
  3. Nice article. But u can use preg_match() which is fast.

    ReplyDelete
  4. yes, use preg_match(). It is not only faster, but ereg will probably not be included as standard in future PHP versions

    ReplyDelete
  5. Dude you go way out of your way on this.

    put the regexs into an array

    $regs['name'] = "..*"; etc....

    then loop through the array

    foreach( $regs as $k => $v )

    then

    if( ! ereg( $v , $_POST[$k] ) )
    {
    $errors[$k] = "Invalid!";
    }


    use a loop luke!

    ReplyDelete
  6. Also store the error text in another array of string if you want to display text according to the error...

    ReplyDelete
  7. It's nice and clean, but I would suggest to add some lines to keep the gender choice in case of validation not passed.
    Thanks for sharing this.

    Panamon Rn+

    ReplyDelete
  8. I do believe that it would be more appropriate to use filter functions instead.

    Regards,
    Márcio

    ReplyDelete
  9. with the name you can't use double barrels carl john-joe for eg

    ReplyDelete
  10. please tell me details with an example
    mysql_query(" SQL insert statement ");

    ReplyDelete
  11. I do have same concept as this one but this one made it clear... nice job

    ReplyDelete
  12. i want generalised pattern for writing password..
    like ram@143 or 1@ram43 0r 1ram3@
    the expression should contain @,alphabets and numbers compulsorily..
    can anyone help me???

    ReplyDelete
  13. sir prao_math()
    use it please !

    ReplyDelete
  14. kindly use prag_math() please

    ReplyDelete
  15. There is something I don't understand, where is your submit button to submit the form ? Also, why do you echo the valid variable ?

    Thanks

    ReplyDelete
  16. This is very nice tutorial..Thnx..

    ReplyDelete
  17. This is very nice tutorial..Thnx..

    ReplyDelete
  18. I have done all but i get this:
    Undefined variable: valid_name in C:\wamp\www\pf\server-side.php on line 128 Call Stack #TimeMemoryFunctionLocation 10.0011381872{main}( )..\server-side.php:0 " maxlength="255" tabindex="1" />

    ReplyDelete
  19. You can enter names as numbers, not sure if that's a good idea

    ReplyDelete
  20. good job my friends i like it............

    ReplyDelete
  21. Good job my friend i like it.........

    ReplyDelete
  22. any one tell me.. when i select a option(drop-down) press submit.. after submit it will show which one i select dropdown that set selected.. how can i do this help any one please......

    ReplyDelete
  23. it was very helpful.... thank you...

    ReplyDelete
  24. how about making it post to a file like process.php instead of redirecting to a thankyou.htm page?

    ReplyDelete
  25. how to validate form with database

    ReplyDelete
  26. nice & clean for beginner..

    ReplyDelete
  27. nice work man,keep it up

    ReplyDelete
  28. HI,
    Deprecated: Function eregi() is deprecated in C:\wamp\www\RegistrationAndLogin\validation.php on line 10

    this is my code



    ReplyDelete

Make in India