But the server side validation is also required, if the client browser disabled its Javascript Features.
Here , you can find a sample code written in PHP for form validation.
Beginners can modify the code or learn the underlying principle of the validator script.
F
/*
* Class Validator()
* general Purpose validation Script for PHP Validation on Elements
* Use the validator constructor for setting values which needs the validation
* Invoke validate method for vaidation test
*/
class Validator
{
private $validateFields;
public $errorMessage;
/*
* Constructor
* Param $args - Validation elements and rules
*/
function __construct($args)
{
$this->validateFields = $args;
}
/*
* Validationn for Email
* Param $string - String
*/
function validateEmail($string)
{
$pattern = "/([a-zA-Z0-9._\&\*-]*)@([a-zA-Z0-9._-]*).([a-zA-Z0-9]{2,})/";
if(preg_match($pattern,$string)){
return true;
}else{
return false;
}
}
/*
* Validation for URL
* Param $string - String
*/
function validateUrl($string)
{
$pattern = "/(http|https):\/\/([a-zA-Z0-9_.-]*).([a-zA-z0-9]{2,})/";
if(preg_match($pattern,$string)){
return true;
}else{
return false;
}
}
/*
* Validate For Null
* Param String
*/
function validateNull($string)
{
if(is_null($string)){
return true;
}else{
return false;
}
}
/*
* Validate for numeric
*/
function validateNumeric($string)
{
if(is_numeric($string)){
return true;
}else{
return false;
}
}
/*
* Validte for Empty
* Param $string - String
*/
function validateEmpty($string)
{
$string = trim($string);
if($string =="" || is_null($string)){
return true;
}else{
return false;
}
}
/*
* Validate for special chars
*/
function validateSpecial($string)
{
$specials= array("!","@","#","$","%","^","&","*","(",")","_","-","=","+","'","\"",".",",",":",";");
$string = trim($string);
$count = 0;
for($i=0;$i
$count++;
}
}
if($count>0){
return true;
}else{
return false;
}
}
/*
* Set Error Message
* Param $string - String Mesage
*/
function setError($string)
{
$this->errorMessage = $string;
}
/*
* Get Error Message
*/
function getMessage()
{
return $this->errorMessage;
}
/*
* Validate Fields
* Validation based on field values and Rules applied
*/
function validate()
{
if(count($this->validateFields)==0 || !is_array($this->validateFields)){
return false;
}else{
$error = 0;
$fieldPos=1;
//First Validate For Empty on all fields //
foreach($this->validateFields as $key=>$val){
$checkedError = 0;
$parts = explode("/",$val);
$label = $parts[0];
$valids = explode("|",$parts[1]);
if(in_array("EMPTY",$valids) && $checkedError==0){
if($this->validateEmpty($key)){
$error++;
$this->setError("Enter Mandatory Fields ");
$checkedError = 1;
break;
}
}
$fieldPos++;
}
if($error==0){
$fieldPos=1;
foreach($this->validateFields as $key=>$val){
$checkedError = 0;
$parts = explode("/",$val);
$label = $parts[0];
$valids = explode("|",$parts[1]);
if(in_array("EMAIL",$valids)){
if(!$this->validateEmail($key) && $checkedError==0 && $error==0){
$error++;
$this->setError("Invalid email id in field -".$label."-");
$checkedError=1;
break;
}
}
if(in_array("NUMBER",$valids)){
if(!$this->validateNumeric($key) && $checkedError==0 && $error==0){
$error++;
$this->setError("Enter Numeric in field -".$label."-");
$checkedError=1;
break;
}
}
if(in_array("FILTER",$valids)){
if($this->validateSpecial($key) && $checkedError==0 && $error==0){
$error++;
$this->setError("Special chars not allowed in field -".$label."-");
$checkedError=1;
break;
}
}
if(in_array("URL",$valids)){
if(!$this->validateUrl($key) && $checkedError==0 && $error==0){
$error++;
$this->setError("Invalid website address in field -".$label."-");
$checkedError=1;
break;
}
}
$fieldPos++;
}
}
}
if($error==0){
return true;
}else{
return false;
}
}
}
Using the validator class
$array = array( $name=>"LABEL1/EMPTY",
$lastname=>"LABEL2/EMPTY", $email=>"LABEL3/EMAIL|EMPTY", $url=>"LABEL4/URL",
$url1=>"LABEL5/URL|EMPTY",
);
$obj = new Validator($array);
if($obj -> validate()){
echo "Validation Success";
}else{
echo $obj->getMessage();
}
//Validator constructor takes an array input contains, the Fields and Validation criteria
ex : $name=>"Username/EMPTY|FILTER"
$name - field to be validates
Username - Caption or the bales for the $name (Just to know which field it is)
EMPTY|FILTER - validation criteria seperated by | (Multiple validation methods)
0 comments:
Post a Comment