Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as PHP by czechu ( 15 years ago )
<?php
class validateForm{
private $rules,$ok;
public $error;
function addRule($name, $rule){
$this->rules[$name] = $rule;
}
function noEmpty($name)
{
$this->addRule($name, 'noEmpty');
}
function intNoNull($name){
$this->addRule($name, 'intNoNull');
}
function compare($name,$name2,$type)
{
$this->addRule($name, 'compareto_'.$name2);
$this->addRule($name2, 'compare_'.$type);
}
function email($name){
$this->addRule($name,'email');
}
function minLenght($name,$lenght){
$this->addRule($name, 'min_'.$lenght);
}
function maxLenght($name, $lenght){
$this->addRule($name, 'max_'.$lenght);
}
function save()
{
$_SESSION['rules']=serialize($this->rules);
}
function foundError($pole, $rule)
{
$this->ok = false;
$this->error[$pole] = $rule;
}
function parse(){
$rules = unserialize($_SESSION['rules']);
$this->ok = true;
foreach($rules as $pole => $rule)
{
$in = postString($pole);
$ruleTab = explode('_',$rule);
switch ($ruleTab[0])
{
case 'noEmpty':
if(empty($in))
$this->foundError($pole, $rule);
break;
case 'intNoNull':
$in = postInt($pole);
if($in == 0 )
$this->foundError($pole, $rule);
break;
case 'compareto':
$compare[$ruleTab[1]] = $in;
break;
case 'compare':
switch ($ruleTab[1])
{
case '==':
if($in == $compare[$pole]);
else
$this->foundError($pole, $rule);
break;
case '=!':
if($in != $compare[$pole]);
else
$this->foundError($pole, $rule);
break;
case '<=':
if($compare[$pole] <= $in);
else
$this->foundError($pole, $rule);
break;
case '<':
if($compare[$pole] < $in);
else
$this->foundError($pole, $rule);
break;
case '>=':
if($compare[$pole] >= $in);
else
$this->foundError($pole, $rule);
break;
case '>':
if($compare[$pole] > $in);
else
$this->foundError($pole, $rule);
break;
default:
$this->foundError($pole, $rule);
}
break;
case 'email':
if( !preg_match( "/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/", $in))
$this->foundError($pole, $rule);
break;
case 'min':
if(strlen($in)<$ruleTab[1])
$this->foundError($pole, $rule);
break;
case 'max':
if(strlen($in)>$ruleTab[1])
$this->foundError($pole, $rule);
break;
default:
$this->foundError($pole, $rule);
}
}
return $this->ok;
}
}
?>
Revise this Paste