عنوان مقاله :

کلاس PHP Validation

گردآوری و تالیف : محمد صادق زحمتکش
تاریخ انتشار : 26 تیر 1396
دسته بندی ها : پی اچ پی

کلاس PHP Validation مجموعه ای از قوانین و متد های اعتبار سنجی است که به شما این اجازه را می دهد تا اعتبار سنجی سمت سرور را به فرم های خود با سرعت و با حداقل تلاش در کد نویسی اضافه کنید. کلاس PHP Validation مقادیری را وارد می کند که با الگوریتم های اعتبار سنجی این امکان را فراهم میکند تا کاربر وارد فرم مخصوص به خود شود و اگر معیارهای مشخصی را برآورده نکند (به عنوان مثال آنها برای ورود به مقدار صحیح را وارد نکنند)، آنها به فرم اصلی بازگردانده می شوند وشما قادر خواهید بود یک لیست از تمام زمینه های تخلف و مصادیق ورود غیر معتبر را دریافت نمایید. این کلاس از php در نسخه های php4 به بالا قابل استفاده میباشد.

این کلاس از php قادر است با در اختیار گذاشتن قواعد و قوانین اعتبار سنجی از قبیل عدد،حروف الفبا،ایمیل،شماره و... یک الگوی اعتبار سنجی قوی را برای شما به ارمغان بیاورد و به شما این امکان را میدهد تا از این الگو در فرم های ورود و... در پروژه خود استفاده نمایید.
شما با استفاده از این کلاس میتوانید به راحتی با فراخوانی آن این اعتبار سنجی را برای فرم های مختلف سایت و پورتال خود ایجاد کنید و بایک سیستم امن ، فرم های ورود خود را به این کلاس اعتبار سنج مجهز کنید.

این کلاس با فریم ورک های مختلف php ساز گاری کاملی دارد فقط باید به این نکته توجه نمایید که این کلاس در نسخه های php4 به بالا میتواند استفاده شود.

روش فراخوانی و استفاده کلاس  PHP Validation :

  • کلاس اعتبار سنجی PHP Validation را بر روی سرور وب خود آپلود کنید.
  • فرم خود را به صفت های کلاس   PHP Validationاختصاص دهید. هنگامی که فرم با موفقیت قوانین اعتبارسنجی را منتقل کرد و به درخواست سرور پاسخداد، می توانید کاربر را به صفحه ای که برای او تعیین کردید هدایت کنید. اگر اعتبار سنجی اتفاق نیفتد، شما می توانید اشتباهات را مستقیما در صفحه فرم برای کاربر تشریح و برای رفع آن به کاربر راهنمایی برسانید.
  • قبل از تگ باز کردن، قوانین اعتبار سنجی خاص خود را در بالای صفحه فرم خود اضافه کنید. این از قواعد اعتبارسنجی است. اساسا یک لیست (یک آرایه می باشد)، می گوید که کدام فرم ها باید برای تایید به کاربر نمایش داده شود و نیز چه خطاهایی باید به کاربر نمایش داده شود در صورتی که گزینه های اعتبار سنجی به درستی پر نشده باشد.
  • برخی از کد صفحه نمایش را در صفحه خود اضافه کنید که هر خطایی را که رخ می دهد را نمایش می دهد

به مجموعه کد های زیر دقت کنید :

// if $errors is not empty, the form must have failed one or more validation
// tests. Loop through each and display them on the page for the user
if (!empty($errors))
{
  echo "<div class='error'>Please fix the following errors:\n<ul>";
  foreach ($errors as $error)
    echo "<li>$error</li>\n";
     
  echo "</ul></div>";
}

کد زیر به عنوان مثالی ساده جهت استفاده از این کلاس در پروژه های php برای شما آماده شده است:

$errors = array(); // set the errors array to empty, by default
$fields = array(); // stores the field values
$message = "";
 
if (isset($_POST["submit"]))
{
   // import the validation library
   require("validation.php");
 
   $rules = array(); // stores the validation rules
 
   // standard form fields
   $rules[] = "required,user_name,This field is required.";
   $rules[] = "required,email,Please enter your email address.";
   $rules[] = "valid_email,email,Please enter a valid email address.";
    
   // date fields
   $rules[] = "valid_date,any_date_month,any_date_day,any_date_year,any_date,Please enter a valid date.";
   $rules[] = "valid_date,later_date_month,later_date_day,later_date_year,later_date,Please enter an date later than today.";
    
   // Numbers / alphanumeric fields
   $rules[] = "required,any_integer,Please enter an integer.";
   $rules[] = "digits_only,any_integer,This field may only contain digits.";
   $rules[] = "digits_only,number_range,This field may only contain digits.";
   $rules[] = "range=1-100,number_range,Please enter a number between 1 and 100.";
   $rules[] = "range>100,number_range_greater_than,Please enter a number greater than 100.";
   $rules[] = "range>=100,number_range_greater_than_or_equal,Please enter a number greater than or equal to 100.";
   $rules[] = "range<100,number_range_less_than,Please enter a number less than 100.";
   $rules[] = "range<=100,number_range_less_than_or_equal,Please enter a number less than or equal to 100.";
   $rules[] = "letters_only,letter_field,Please only enter letters (a-Z) in this field.";
   $rules[] = "required,alpha_field,Please enter an alphanumeric (0-9 a-Z) string.";
   $rules[] = "is_alpha,alpha_field,Please only enter alphanumeric characters (0-9 a-Z) in this field.";
   $rules[] = "custom_alpha,custom_alpha_field1,LLL-VVV,Please enter a string of form LLL-VVV - where L is an uppercase "
      . "letter and V is an uppercase vowel.";
   $rules[] = "custom_alpha,custom_alpha_field2,DDxxx,Please enter a string of form DDxxx.";
   $rules[] = "custom_alpha,custom_alpha_field3,EEXX,Please enter a string of form EEXX.";
   $rules[] = "custom_alpha,custom_alpha_field4,VVvvllFF,Please enter a string of form VVvvllFF.";
   $rules[] = "custom_alpha,custom_alpha_field5,#XccccCCCC,Please enter a string of form #XccccCCCC.";
   $rules[] = "reg_exp,reg_exp_field1,^\s*(red|orange|yellow|green|blue|indigo|violet|pink|white)\s*$,Please enter your "
      . "favourite colour in lowercase (e.g. \"red\" or \"blue\")";
   $rules[] = "required,reg_exp_field2,Please enter your favourite colour (e.g. \"red\" or \"blue\")";
   $rules[] = "reg_exp,reg_exp_field2,^\s*(red|orange|yellow|green|blue|indigo|violet|pink|white)\s*$,i,Please enter your "
      . "favourite colour (e.g. \"red\" or \"blue\")";
    
   // Length of field input
   $rules[] = "length=2,char_length,Please enter a value that is exactly two characters long.";
   $rules[] = "length=3-5,char_length_range,Please enter a value that is between 3 and 5 characters in length.";
   $rules[] = "length>5,char_length_greater_than,Please enter a value that is over 5 characters long.";
   $rules[] = "length>=5,char_length_greater_than_or_equal,Please enter a value that is at least 5 characters long.";
   $rules[] = "length<5,char_length_less_than,Please enter a value that is less than 5 characters long.";
   $rules[] = "length<=5,char_length_less_than_or_equal,Please enter a value that is less than or equal to 5 characters.";
    
   // password fields
   $rules[] = "required,password,Please enter a password.";
   $rules[] = "same_as,password,password_2,Please ensure the passwords you enter are the same.";
    
   // conditional (if-else) fields
   $rules[] = "required,gender,Please enter your gender.";
   $rules[] = "if:gender=male,required,male_question,Please enter the name of your favourite Care Bear.";
   $rules[] = "if:gender=female,required,female_question,Please indicate what max weight you can bench.";
    
   $errors = validateFields($_POST, $rules);
    
   // if there were errors, re-populate the form fields
   if (!empty($errors))
   {
      $fields = $_POST;
   }
    
   // no errors! redirect the user to the thankyou page (or whatever)
   else
   {
      // for illustration purposes.
      $message = "All fields have been validated successfully!";
       
      // here you would either email the form contents to someone or store it in a database.
      // To redirect to a "thankyou" page, you'd just do this:
      // header("Location: thanks.php");
   }
}

شما میتوانید فایل های این کلاس را از لینک https://github.com/benkeen/php_validation دریافت نمایید.

مقالات پیشنهادی

کلاس پی اچ پی svg-math-graphics

کلاس svg-math-graphics گرافیک توابع ریاضی را در فرمت SVG در قالب نمودار نمایش میدهد و شما میتوانید در پروژه php  خود با استفاده از آنالیز ریاضی ، داده...

کلاس PHP MySQL Websocket Chat

در این مقاله میخواهیم به معرفی کلاسی بپردازیم که با اضافه کردن آن به پروژه ی خود قادر خواهید بود تا قابلیت چت را به برنامه ی خود اضافه نمایید.

کلاس PHP Live Radio Streaming

در این مقاله قصد داریم به معرفی یکی دیگر از  کلاس های حوزه ی  Audioاز مجموعه کلاس های php بپردازیم.با ما همراه باشید . کلاسی که در این مقاله درباره ی...

کلاس پی اچ پی Numeric TTS

در واقع پخش رقم به رقم کدها و رمز هایی که به صورت عدد و رقم هستند با استفاده از پردازش صوت با توجه به رشته یا عدد موجود در برنامه میسر است که به تنهای...

دیدگاه های ارزشمند شما

برای ارسال نظر لازم است ابتدا وارد سایت شوید
حمید ساجدین | 5 ماه پیش

مقاله ی خوبی بود به خصوص که از مثال های کاربردی استفاده شده است
از راکت و مولف این مقاله آقای زحمتکش متشکرم

حسام موسوی | 5 ماه پیش

تشکر بابت نظرتون
امیدوارم راکت هر روز بهتر و بهتر بشه