9lessons programming blog
Loading Search
Tuesday, July 7, 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
Sponsored Links

Share this post

Comments
{ 12 comments }
ChoiZ said...

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 {}

Yoosuf said...

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

B A B U said...

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

Anonymous said...

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

Robert Brown said...

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!

Anonymous said...

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

Anonymous said...

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+

Anonymous said...

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

Regards,
Márcio

msmith said...

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

Anup said...

Great tutorial.

Mushfequr Rahman said...

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

Anonymous said...

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

Post a Comment

Subscribe now!Recent Posts

Categories

Subscribe now!Popular Posts

People Says

@9lessons thank you for the great tutorials, we truly appreciate your contributions to the design community.

Smashing Magazine

Like Me

follow me
products

9lessons labs

9lessons clouds

Android application

Chrome Extension