کلاسی برای چک کردن مقادیر

یکشنبه ۱۸ اسفند ۱۳۸۷ - ۰۷:۰۷ بعد از ظهر

بازدید: 484 مرتبه

سلام، به دوستان php کار

 

مقدمه
چند روز پیش یه class نوشتم که کارش چک کردن فرم هاست، یعنی میاد از شما مقادیر رو به صورت array دریافت می‌کنه و اگه دستور شما خطا داشت، اخطاری رو که شما بهش می‌دین‌ در خروجی چاپ می‌کنه.

 

فایل
ابتدا شما این فایل زیر رو دانلود کنین، تا بعد بگم چطور کار می‌کنه این class
همراه این فایل zip پیش نمایش هم قرار دادم.

لینک دانلود: clscheck.zip

حجم: ۱۲ kb

پسورد: mjm3d.com

 

"طرز استفاده در دنباله"

 


طرز کار
خوب شما ابتدا کنار فایل class یه فایل با نام دلخواه و پسوند php قرار می‌دین و فایل رو باز کرده و start کار رو می‌زنین.
ابتدای کار یادتون نره که فایل class رو include کنین، سپس class مورد نظر رو در هر متغیری که خواستین قرار می‌دین، پس نتیجه کار به صورت زیر می‌شه.

<?php
 include("clscheck.php");
 $check = new ClsCheck();
?>

 

خوب حالا باید توابع کلاسمون رو فراخوانی کنیم.

 

تابع Null
مقدار اولیه این تابع به صورت array مقادیر رو دریافت می‌کنه، مثلا شما یه فرم دارین که از طریق اون کاربر name خودشو وارد می‌کنه، بعدش شما می‌یاین این دستور رو به صورت $_POST['name'] به تابع Null ارسال می‌کنین، و اون چک می‌کنه و در صورت خالی بودن فیلد name اخطاری رو که شما به مقدار دوم این تابع دادین رو چاپ می‌کنه، برای فهم بیشتر کار کد زیر رو ببینین.

$check->Null(array($_POST['name']),
"لطفاً نام خود را وارد نمایید !");

 

تابع Mail
این تابع چک می‌کنه که آیا ایمل کاربر معتبر می‌باشه یا نه، و به صورت زیر عمل می‌کنه.

$check->Null(array($_POST['mail']),
"لطفاً یک ایمیل معتبر وارد نمایید !");

 

تابع Eq
تابع eq کارش اینکه ببینه آیا به مثال فیلد password با تکرار password که کاربر وارد می‌کنه برابر هستن یا نه!

$check->Eq(array($_POST['pass']=> $_POST['pass2']),
"کلمه عبور با تکرار آن برابر نمی‌باشد !");

مقدار اولی و دومی رو باید با علامت => از هم جدا کنین.

 

تابع EqChar
این تابع کارایش مثه تابع قبلیه ولی چک می‌کنه که این دو تا مقدار تعداد کاراکترهاشون با هم برابره یا نه!

$check->EqChar(array ($_POST['pass']=> $_POST['pass2']),
"تعداد کاراکتر‌های کلمه عبور با تکرار آن برابر نمی‌باشد !");

 

تابع NumChar
این تابع برای این کار هستش که آیا نام کاربری که کاربر وارد کرده، به مثال اگ کمتر از ۵ کاراکتر و بیشتر از ۱۵ کاراکتر بود اخطاری را صادر نماید.
علاوه بر این، می‌توانید به این تابع دستور دهید که نام کاربری فقط و فقط باید ۶ کاراکتر، نه کم و نه زیاد باشد.

$check->NumChar(array($_POST['username']), 5, 15, null,
"اخطار !";

خوب یه توضیح در مورد کد بالا بگم و بعد بریم رو تابع بعدی، مقدار دومی این تابع برابر کمترین تعدا کاراکتر هست که من برابر ۵ کارکتر قرا دادم، مقدار سومی بیشترین تعداد کاراکتر هستش که من ۱۵ قرا دادم و چهرمین مقدار برای این هستش که آیا نام‌کاربری فقط برابر n کاراکتر هستش یا نه، که در اینجا من مقدارشو null قرار دادم، یعنی این دستور رو لغو کردم، شما هم می‌تونین هر کدوم از این مقادیر دومی تا چهارمی رو با کلمه null لغو کنین.

 

تابع FirstEnd
این تابع کارش به این شکله که میاد چک می‌کنه آیا به مثال کاربر، نام‌کاربری که وارد نموده در اول و یا آخر آن از خط‌ تیره استفاده کرده یا نه، اگه استفاده کرده بود، اخطار مورد نظر رو چاپ کن.

$check->FirstEnd(array($_POST['username']), "-", "-",
"نام‌کاربری نمی‌تواند با کاراکتر (-) شروع و به پایان برسد!");

 

تابع Number
این تابع تنها کاری که میکنه، اینکه آیا شماره تماس کاربر فقط از اعداد استفاده شده است یا نه، حتی مقدار دوم این تابع از شما می‌پرسه که آیا شماره تماسی که کاربر وارد می‌کنه میتونه از فاصله استفاه کنه یا نه، اگه این مقدار رو بر روی false تنظیم کنین، و کاربر در بین شماره تماسش از فاصله استفاده کنه، تابع به خاطر همین فاصله اخطار میده!

$check->Number(array($_POST['tel']), true,
  "شماره تماس شما معتبر نمی‌باشد !");

 

تابع EnWord
این تابع چک می‌کنه که آیا نام‌کاربری که فرد وارد کرده فقط از حروف انگلیسی استفاده کرده یا نه و مقدار دومش هم مثله مقدار دوم تابع Number عمل می‌کنه.

$check->EnWord(array($_POST['username']), false,
"نام‌کاربری خود را فقط به حروف انگلیسی وارد نمایید !");

 

تابع HexColor
این تابع کارایش زیاد نیست، ولی گاهی اوقات به دادمون میرسه، این تابع چک می‌کنه که آیا کد رنگ وارد شده در محدوده‌ی کد رنگ‌ها هست یا نه.

$check->HexColor(array($_POST['color']),
"کد رنگ وارد شده معتبر نمی‌باشد !");

 

تابع PostalCode
این تابع چک میکنه که آیا کد پستی وارد شده معتبره یا نه!
یک نمونه کد پستی صحیح: ۱۲۳۴۵-۱۲۳۴

$check->PostalCode(array($_POST['postal']),
"کد پستی شما معتبر نمی‌باشد!");

 

تابع IP
اینم تابع آخری که کارش چک کردن IP هست.
یک نمونه IP صحیح: ۱۲۷/۰/۰/۱

$check->IP(array($_POST['IP']),
"آی پی وارد شده معتبر نمی‌باشد!");

 

خوب معرفی توابع تموم شد، حالا برای نمایش خطاها از تابع زیر می‌تونین استفاده کنین.

print_r ($check->Show());

 

یه تابع دیگه هم من اضافش کردم که کارش شمردن خطاهاست و بوسیله‌ی تابع زیر قابل نمایشه.

echo ($check->Num());

 

سوال - جواب
خوب حالا یه چندتا سوال که ممکنه در ذهنتون خطور کنه رو جواب بدم.

 

- ممکنه بگید چرا من مقادیر توابع رو به صورت array دریافت کردم؟ خوب این به‌خاطر اینکه شما ممکنه همزمان بخوایید ۳ و یا ۴ مقدار رو چک کنید که آیا به مثال این مقادیر، خالی هستن یا نه!

 

- شاید بپرسید که چرا من خروجی رو به صورت array بازگشت دادم؟ اینم واضحه که ممکنه شما بخوایین در بین اخطاراتون از یه تگ <b></b> و یا تگ های دیگه html استفاده کنین، برای این کار من اومدم از حلقه foreach استفاده کردم به صورت زیر

foreach ($check->Show() as $v) {
    echo "<b>".$v."</b>";
}

 

- شاید سوال براتون پیش باید که حالا اگه هیچ اخطاری نبود دستور ok بودن رو چاپ کنم، اینم راه داره، به صورت زیر هم می‌تونین اخطار ها و هم تعداد خطاها و هم درست بودن مقادیر رو اعلان کنید.

if ($check->Show()) {
    echo "تعداد خطاها: ".$check->Num()."<br />";
    foreach ($check->Show() as $v) {
        echo "<b>".$v."</b>";
    }
}
else {
    echo "عملیات با موفقیت انجام شد";
}

اگه سوال دیگه‌ای هم داشتین در قسمت نظرت می‌تونین مطرح کنید.

 

دسته: پی اچ پی

 | 

نویسنده: محمد جواد (admin)


۷ نظر برای [ کلاسی برای چک کردن مقادیر ]

  1. نویسنده: علی افشار
    یکشنبه ۱۸ اسفند ۱۳۸۷ - ۱۰:۳۲ بعد از ظهر
     

    قالب خیلی قشنگی شده . من یکی لذت بردم .

  2. نویسنده: محمد جواد (admin)
    یکشنبه ۱۸ اسفند ۱۳۸۷ - ۱۰:۳۶ بعد از ظهر
     

    مرسی، اگه پیشنهادی هم دارین میتونین مطرح کنین ;)

  3. نویسنده: نبی
    سه شنبه ۲۰ اسفند ۱۳۸۷ - ۰۸:۴۳ قبل از ظهر
     

    مقاله professional بود ;-)

    ولی فقط چرا این قالبت اینقدر شبیه قالب وبلاگ من شده؟! تو دست از این دله دزدی بازی ها بر نمیداری؟! سایتت رو که ساسپند کردم میفهمی :-” زود باش پاکش کن!

  4. نویسنده: محمد جواد (admin)
    چهارشنبه ۲۱ اسفند ۱۳۸۷ - ۱۱:۵۴ قبل از ظهر
     

    من فقط از رنگ وبلاگت ایده گرفتم، همین!!

  5. نویسنده: نبی
    چهارشنبه ۲۱ اسفند ۱۳۸۷ - ۰۴:۴۸ بعد از ظهر
     

    برو بابا! کپی میکنی میگی ایده گرفتم!

  6. نویسنده: امیر حسین
    چهارشنبه ۲۱ اسفند ۱۳۸۷ - ۰۷:۰۶ بعد از ظهر
     

    سلام
    ممنون که وقتتو صرف کردی و این کد رو در اختیار دیگران گذاشتی

    در ضمن
    نبی راست میگه !
    یکمکی رنگ و آب وبلاگتو عوض کن
    نبی با این چیزا گول نمیخوره !

    یا علی

  7. نویسنده: محمد جواد (admin)
    چهارشنبه ۲۱ اسفند ۱۳۸۷ - ۰۷:۱۴ بعد از ظهر
     

    خواهش میکنم ;)

نظری بنویسید.