<?php
/**
* کلاس اصلی
*/
class Validator {
/**
* Private
* $errorMsg نگهداری خطا ها در صورت وجود
*/
var $errorMsg;
//! A constructor.
/**
* ساخت یک شی validator جدید
*/
function Validator () {
$this->errorMsg=array();
$this->validate();
}
/**
* @return void
*/
function validate() {
}
/**
* اضافه کردن خطا به آرایه
* @return void
*/
function setError ($msg) {
$this->errorMsg[]=$msg;
}
/**
* بازگشت درست و غلط
* @return boolean
*/
function isValid () {
if ( isset ($this->errorMsg) ) {
return false;
} else {
return true;
}
}
/**
* بدست آوردن خطا ها
* @return string
*/
function getError () {
return array_pop($this->errorMsg);
}
}
/**
*valid کردن username
*/
class ValidateUser extends Validator {
/**
* $user متغیر مورد نیاز
*/
var $user;
/**
* اخت یک شی validatoruser جدید
* @param $user the string to validate
*/
function ValidateUser ($user) {
$this->user=$user;
Validator::Validator();
}
/**
* Validates کردن username
* @return void
*/
function validate() {
if (!preg_match('/^[a-zA-Z0-9_]+$/',$this->user )) {
$this->setError('Username contains invalid characters');
}
if (strlen($this->user) < 6 ) {
$this->setError('Username is too short');
}
if (strlen($this->user) > 20 ) {
$this->setError('Username is too long');
}
}
}
/**
* Validate کردن password
*/
class ValidatePassword extends Validator {
/**
* $pass متغیر مورد نیاز
*/
var $pass;
/**
* $conf متغیر تکرار کلمه عبور
*/
var $conf;
/**
* ساخت ValidatePassword شی جدید
* @param $pass the string to validate
* @param $conf to compare with $pass for confirmation
*/
function ValidatePassword ($pass,$conf) {
$this->pass=$pass;
$this->conf=$conf;
Validator::Validator();
}
/**
* Validates کردن password
* @return void
*/
function validate() {
if ($this->pass!=$this->conf) {
$this->setError('Passwords do not match');
}
if (!preg_match('/^[a-zA-Z0-9_]+$/',$this->pass )) {
$this->setError('Password contains invalid characters');
}
if (strlen($this->pass) < 6 ) {
$this->setError('Password is too short');
}
if (strlen($this->pass) > 20 ) {
$this->setError('Password is too long');
}
}
}
/**
* Validates کردن email address
*/
class ValidateEmail extends Validator {
/**
* $email متغیر مورد نیاز
*/
var $email;
/**
* جدید ValidateEmail ساخت شی
* @param $email the string to validate
*/
function ValidateEmail ($email){
$this->email=$email;
Validator::Validator();
}
/**
* Validates کردن email address
* @return void
*/
function validate() {
$pattern=
"/^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+/";
if(!preg_match($pattern,$this->email)){
$this->setError('Invalid email address');
}
if (strlen($this->email)>100){
$this->setError('Address is too long');
}
}
}
?>