الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Form Validator Class V0.1

بدأه Dr.Pain في 30 يونيو 2011 · 1 رد · 641 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته .......

أقوم حالياُ بتطوير هذا الـ Class والذي يسمح لك بعمل Validate للـ From's Elements والتقليل من جمل الـ IF :

Class name : Form Validator Class

language : PHP

Author: Nezar Fadle

Date: 30 - 06 - 2011

Built in Validation Descriptors

######################################

STRING = STRING

REQ = Required

EQ = Equal

NEQ = Not Equal

MAXLEN = Max Length

EMAIL = EMail

NUMBER = NUMBER

BETWEEN = BETWEEN

GT = Greater than

LT = Less Than

<form method="post" action="">
	Name : <input type="text" name="name"><br>
	Age : <input type="text" name="age"><br>
	<input type="submit" name="submit">
</form>

<?php



			Class FormValidator {

				private $formsRules ;
				private $errorMessages ;
				private $formElements ; 




				function __construct($form) {

						$this->formsRules = array() ; 
						$this->errorMessages = array() ;	
						$this->formElements = $form ;	



						// Strings
						define ("STRING", "/^[a-zA-Z]+$/") ;
						define ("REQ", "") ; // Required
						define ("EQ", "") ; // Equal
						define ("NEQ", "") ; // Not Equal
						define ("MAXLEN", "") ; // Max Length
						define ("EMAIL", "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/") ; // EMail



						// Numbers 
						define ("NUMBER", "") ; 
						define ("BETWEEN", "") ;
						define ("GT", "") ; // Greater than 
						define ("LT", "") ; // Less Than




				}



				function addRule( $field, $rule, $message ) {


					if ( ! array_key_exists( $field, $this->formsRules ) ){


						$this->formsRules[$field] = array ();


					}


					array_push( $this->formsRules[$field] , array (


							$rule, $message


					));




				}

				function getErrorMessages () {

					return $this->errorMessages ;

				}


				function validate() {


					foreach( $this->formsRules as $field => $value ) {



						foreach ( $this->formsRules[$field] as $key => $elements) {

							//echo "Field  : " . $field ."<br>";
							//echo "Rule : " . $elements[0] ."<br>";
							//echo "Message : " . $elements[1] . "<br>" ;
							//echo "-------------------------------------<br>";

							if ( array_key_exists ( $field, $this->formElements )) {

								$buffer = explode ( " ", $elements[0] );

								if ( defined ( strtoupper ( $buffer[0] ) ) ) {


										switch ( strtolower ( $buffer[0] )) {

											case "req":

												if ( trim( $this->formElements[$field]) == "" ) {

													if ( ! array_key_exists( $field, $this->errorMessages )) {

														$this->errorMessages[$field] = $elements[1] ;

													}

												}

												break;

											case "eq":

												if ( $this->formElements[$field] != $buffer[1] ) {

													if ( ! array_key_exists( $field, $this->errorMessages )) {

														$this->errorMessages[$field] = $elements[1] ;

													}

												}

												break;


											case "neq":

												if ( $this->formElements[$field] == $buffer[1] ) {

													if ( ! array_key_exists( $field, $this->errorMessages )) {

														$this->errorMessages[$field] = $elements[1] ;

													}


												}

												break;

											case "maxlen":

												if ( strlen ( $this->formElements[$field] ) > $buffer[1] ) {

													if ( ! array_key_exists( $field, $this->errorMessages )) {

														$this->errorMessages[$field] = $elements[1] ;

													}
												}

												break;



											// Numbers	

											case "number":

												if ( ! is_numeric( $this->formElements[$field]  ))  {

													if ( ! array_key_exists( $field, $this->errorMessages )) {

														$this->errorMessages[$field] = $elements[1] ;

													}

												}

												break;

											case "between" :

												if ( $this->formElements[$field] < $buffer[1] || $this->formElements[$field] > $buffer[2] ){

													if ( ! array_key_exists( $field, $this->errorMessages )) {

														$this->errorMessages[$field] = $elements[1] ;

													}

												}

												break;

											case "gt" :

												if ( $this->formElements[$field] < $buffer[1] ) {


													if ( ! array_key_exists( $field, $this->errorMessages )) {

														$this->errorMessages[$field] = $elements[1] ;

													}

												}

												break;

											case "lt" :

												if ( $this->formElements[$field] > $buffer[1] || trim ( $this->formElements[$field] ) == "" ){

													if ( ! array_key_exists( $field, $this->errorMessages )) {

														$this->errorMessages[$field] = $elements[1] ;

													}

												}

												break;

											default :

											if ( ! preg_match ( constant ( strtoupper($buffer[0]) ) , $this->formElements[$field] ) ){

													if ( ! array_key_exists( $field, $this->errorMessages )) {

														$this->errorMessages[$field] = $elements[1] ;

													}

											}


										}


								}else {

										if ( ! preg_match ( $elements[0] , $this->formElements[$field] ) )	{


											if ( ! array_key_exists( $field, $this->errorMessages )) {

														$this->errorMessages[$field] = $elements[1] ;

													}


										}


								}

							}							

						}

					}



					if ( count ( $this->errorMessages ) <= 0  ) {

						return true ;

					}else {

						return false ;

					}

				}


			}

			$v = new FormValidator( $_POST ) ; 

			$v->addRule("name", "req", "Name must be lowercase string and less than 10 Char" ); 
			$v->addRule("name", "string", "Name must be lowercase string and less than 10 Char" ); 
			$v->addRule("name", "maxlen 10", "Name must be lowercase string and less than 10 Char" ); 

			$v->addRule("age", "number", "Age must be Number and between 20 & 30" ); // numbers
			$v->addRule("age", "between 20 30", "Age must be Number and between 20 & 30" ); // numbers


			if ( isset ($_POST['submit'] ) )


				if (  $v->validate() ) {

					echo "You can save your form";

				}else {

					echo "<h3>Missing Values</h3>";
					echo "<ul>";

					foreach( $v->getErrorMessages() as $error ){

						echo "<li>" . $error ;

					}

					echo "</ul>";

				}

?>
2
#2

شكرا ً على الكلاس لكن لو تحط شوية توضيح او تعليقات حول العمليات التي يقوم بها الكلاس بيكون افضل

^_^

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

مواضيع مشابهة