سلام، به دوستان php کار
مقدمه
چند روز پیش یه class نوشتم که کارش چک کردن فرم هاست، یعنی میاد از شما مقادیر رو به صورت array دریافت میکنه و اگه دستور شما خطا داشت، اخطاری رو که شما بهش میدین در خروجی چاپ میکنه.
فایل
ابتدا شما این فایل زیر رو دانلود کنین، تا بعد بگم چطور کار میکنه این class
همراه این فایل zip پیش نمایش هم قرار دادم.
لینک دانلود: clscheck.zip
حجم: ۱۲ kb
پسورد: mjm3d.ir
“طرز استفاده در دنباله”
طرز کار
خوب شما ابتدا کنار فایل class یه فایل با نام دلخواه و پسوند php قرار میدین و فایل رو باز کرده و start کار رو میزنین.
ابتدای کار یادتون نره که فایل class رو include کنین، سپس class مورد نظر رو در هر متغیری که خواستین قرار میدین، پس نتیجه کار به صورت زیر میشه.
1 2 3 4 |
<span style="color: #000000; font-weight: bold;"><?php</span> <span style="color: #b1b100;">include</span><span style="color: #66cc66;">(</span><span style="color: #ff0000;">"clscheck.php"</span><span style="color: #66cc66;">)</span>; <span style="color: #0000ff;">$check</span> = <span style="color: #000000; font-weight: bold;">new</span> ClsCheck<span style="color: #66cc66;">()</span>; <span style="color: #000000; font-weight: bold;">?></span> |
خوب حالا باید توابع کلاسمون رو فراخوانی کنیم.
تابع Null
مقدار اولیه این تابع به صورت array مقادیر رو دریافت میکنه، مثلا شما یه فرم دارین که از طریق اون کاربر name خودشو وارد میکنه، بعدش شما مییاین این دستور رو به صورت $_POST['name'] به تابع Null ارسال میکنین، و اون چک میکنه و در صورت خالی بودن فیلد name اخطاری رو که شما به مقدار دوم این تابع دادین رو چاپ میکنه، برای فهم بیشتر کار کد زیر رو ببینین.
1 |
<span style="color: #0000ff;">$check</span>-><span style="color: #006600;">Null</span><span style="color: #66cc66;">(</span><a style="color: #000060;" href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'name'</span><span style="color: #66cc66;">])</span>,<span style="color: #ff0000;">"لطفاً نام خود را وارد نمایید !"</span><span style="color: #66cc66;">)</span>; |
تابع Mail
این تابع چک میکنه که آیا ایمل کاربر معتبر میباشه یا نه، و به صورت زیر عمل میکنه.
1 |
<span style="color: #0000ff;">$check</span>-><span style="color: #66cc66;"><strong>Mail</strong>(</span><a style="color: #000060;" href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'mail'</span><span style="color: #66cc66;">])</span>,<span style="color: #ff0000;">"لطفاً یک ایمیل معتبر وارد نمایید !"</span><span style="color: #66cc66;">)</span>; |
تابع Eq
تابع eq کارش اینکه ببینه آیا به مثال فیلد password با تکرار password که کاربر وارد میکنه برابر هستن یا نه!
1 2 |
<span style="color: #0000ff;">$check</span>-><span style="color: #006600;">Eq</span><span style="color: #66cc66;">(</span><a style="color: #000060;" href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'pass'</span><span style="color: #66cc66;">]</span>=> <span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'pass2'</span><span style="color: #66cc66;">])</span>, <span style="color: #ff0000;">"کلمه عبور با تکرار آن برابر نمیباشد !"</span><span style="color: #66cc66;">)</span>; |
مقدار اولی و دومی رو باید با علامت => از هم جدا کنین.
تابع EqChar
این تابع کارایش مثه تابع قبلیه ولی چک میکنه که این دو تا مقدار تعداد کاراکترهاشون با هم برابره یا نه!
1 2 |
<span style="color: #0000ff;">$check</span>-><span style="color: #006600;">EqChar</span><span style="color: #66cc66;">(</span><a style="color: #000060;" href="http://www.php.net/array"><span style="color: #000066;">array</span></a> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'pass'</span><span style="color: #66cc66;">]</span>=> <span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'pass2'</span><span style="color: #66cc66;">])</span>, <span style="color: #ff0000;">"تعداد کاراکترهای کلمه عبور با تکرار آن برابر نمیباشد !"</span><span style="color: #66cc66;">)</span>; |
تابع NumChar
این تابع برای این کار هستش که آیا نام کاربری که کاربر وارد کرده، به مثال اگ کمتر از ۵ کاراکتر و بیشتر از ۱۵ کاراکتر بود اخطاری را صادر نماید.
علاوه بر این، میتوانید به این تابع دستور دهید که نام کاربری فقط و فقط باید ۶ کاراکتر، نه کم و نه زیاد باشد.
1 2 |
<span style="color: #0000ff;">$check</span>-><span style="color: #006600;">NumChar</span><span style="color: #66cc66;">(</span><a style="color: #000060;" href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'username'</span><span style="color: #66cc66;">])</span>, <span style="color: #cc66cc;">5</span>, <span style="color: #cc66cc;">15</span>, <span style="color: #000000; font-weight: bold;">null</span>, <span style="color: #ff0000;">"اخطار !"</span>; |
خوب یه توضیح در مورد کد بالا بگم و بعد بریم رو تابع بعدی، مقدار دومی این تابع برابر کمترین تعدا کاراکتر هست که من برابر ۵ کارکتر قرا دادم، مقدار سومی بیشترین تعداد کاراکتر هستش که من ۱۵ قرا دادم و چهرمین مقدار برای این هستش که آیا نامکاربری فقط برابر n کاراکتر هستش یا نه، که در اینجا من مقدارشو null قرار دادم، یعنی این دستور رو لغو کردم، شما هم میتونین هر کدوم از این مقادیر دومی تا چهارمی رو با کلمه null لغو کنین.
تابع FirstEnd
این تابع کارش به این شکله که میاد چک میکنه آیا به مثال کاربر، نامکاربری که وارد نموده در اول و یا آخر آن از خط تیره استفاده کرده یا نه، اگه استفاده کرده بود، اخطار مورد نظر رو چاپ کن.
1 2 |
<span style="color: #0000ff;">$check</span>-><span style="color: #006600;">FirstEnd</span><span style="color: #66cc66;">(</span><a style="color: #000060;" href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'username'</span><span style="color: #66cc66;">])</span>, <span style="color: #ff0000;">"-"</span>, <span style="color: #ff0000;">"-"</span>, <span style="color: #ff0000;">"نامکاربری نمیتواند با کاراکتر (-) شروع و به پایان برسد!"</span><span style="color: #66cc66;">)</span>; |
تابع Number
این تابع تنها کاری که میکنه، اینکه آیا شماره تماس کاربر فقط از اعداد استفاده شده است یا نه، حتی مقدار دوم این تابع از شما میپرسه که آیا شماره تماسی که کاربر وارد میکنه میتونه از فاصله استفاه کنه یا نه، اگه این مقدار رو بر روی false تنظیم کنین، و کاربر در بین شماره تماسش از فاصله استفاده کنه، تابع به خاطر همین فاصله اخطار میده!
1 2 |
<span style="color: #0000ff;">$check</span>-><span style="color: #006600;">Number</span><span style="color: #66cc66;">(</span><a style="color: #000060;" href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'tel'</span><span style="color: #66cc66;">])</span>, <span style="color: #000000; font-weight: bold;">true</span>, <span style="color: #ff0000;"> "شماره تماس شما معتبر نمیباشد !"</span><span style="color: #66cc66;">)</span>; |
تابع EnWord
این تابع چک میکنه که آیا نامکاربری که فرد وارد کرده فقط از حروف انگلیسی استفاده کرده یا نه و مقدار دومش هم مثله مقدار دوم تابع Number عمل میکنه.
1 2 |
<span style="color: #0000ff;">$check</span>-><span style="color: #006600;">EnWord</span><span style="color: #66cc66;">(</span><a style="color: #000060;" href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'username'</span><span style="color: #66cc66;">])</span>, <span style="color: #000000; font-weight: bold;">false</span>, <span style="color: #ff0000;">"نامکاربری خود را فقط به حروف انگلیسی وارد نمایید !"</span><span style="color: #66cc66;">)</span>; |
تابع HexColor
این تابع کارایش زیاد نیست، ولی گاهی اوقات به دادمون میرسه، این تابع چک میکنه که آیا کد رنگ وارد شده در محدودهی کد رنگها هست یا نه.
1 2 |
<span style="color: #0000ff;">$check</span>-><span style="color: #006600;">HexColor</span><span style="color: #66cc66;">(</span><a style="color: #000060;" href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'color'</span><span style="color: #66cc66;">])</span>, <span style="color: #ff0000;">"کد رنگ وارد شده معتبر نمیباشد !"</span><span style="color: #66cc66;">)</span>; |
تابع PostalCode
این تابع چک میکنه که آیا کد پستی وارد شده معتبره یا نه!
یک نمونه کد پستی صحیح: ۱۲۳۴۵-۱۲۳۴
1 2 |
<span style="color: #0000ff;">$check</span>-><span style="color: #006600;">PostalCode</span><span style="color: #66cc66;">(</span><a style="color: #000060;" href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'postal'</span><span style="color: #66cc66;">])</span>, <span style="color: #ff0000;">"کد پستی شما معتبر نمیباشد!"</span><span style="color: #66cc66;">)</span>; |
تابع IP
اینم تابع آخری که کارش چک کردن IP هست.
یک نمونه IP صحیح: ۱۲۷٫۰٫۰٫۱
1 2 |
<span style="color: #0000ff;">$check</span>-><span style="color: #006600;">IP</span><span style="color: #66cc66;">(</span><a style="color: #000060;" href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">(</span><span style="color: #0000ff;">$_POST</span><span style="color: #66cc66;">[</span><span style="color: #ff0000;">'IP'</span><span style="color: #66cc66;">])</span>, <span style="color: #ff0000;">"آی پی وارد شده معتبر نمیباشد!"</span><span style="color: #66cc66;">)</span>; |
خوب معرفی توابع تموم شد، حالا برای نمایش خطاها از تابع زیر میتونین استفاده کنین.
1 |
<a style="color: #000060;" href="http://www.php.net/print_r"><span style="color: #000066;">print_r</span></a> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$check</span>-><span style="color: #006600;">Show</span><span style="color: #66cc66;">())</span>; |
یه تابع دیگه هم من اضافش کردم که کارش شمردن خطاهاست و بوسیلهی تابع زیر قابل نمایشه.
1 |
<a style="color: #000060;" href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$check</span>-><span style="color: #006600;">Num</span><span style="color: #66cc66;">())</span>; |
سوال – جواب
خوب حالا یه چندتا سوال که ممکنه در ذهنتون خطور کنه رو جواب بدم.
- ممکنه بگید چرا من مقادیر توابع رو به صورت array دریافت کردم؟ خوب این بهخاطر اینکه شما ممکنه همزمان بخوایید ۳ و یا ۴ مقدار رو چک کنید که آیا به مثال این مقادیر، خالی هستن یا نه!
- شاید بپرسید که چرا من خروجی رو به صورت array بازگشت دادم؟ اینم واضحه که ممکنه شما بخوایین در بین اخطاراتون از یه تگ <b></b> و یا تگ های دیگه html استفاده کنین، برای این کار من اومدم از حلقه foreach استفاده کردم به صورت زیر
1 2 3 |
<span style="color: #b1b100;">foreach</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$check</span>-><span style="color: #006600;">Show</span><span style="color: #66cc66;">()</span> <span style="color: #b1b100;">as</span> <span style="color: #0000ff;">$v</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span> <a style="color: #000060;" href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">"<b>"</span>.<span style="color: #0000ff;">$v</span>.<span style="color: #ff0000;">"</b>"</span>; <span style="color: #66cc66;">}</span> |
- شاید سوال براتون پیش باید که حالا اگه هیچ اخطاری نبود دستور ok بودن رو چاپ کنم، اینم راه داره، به صورت زیر هم میتونین اخطار ها و هم تعداد خطاها و هم درست بودن مقادیر رو اعلان کنید.
1 2 3 4 5 6 7 8 9 |
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$check</span>-><span style="color: #006600;">Show</span><span style="color: #66cc66;">())</span> <span style="color: #66cc66;">{</span> <a style="color: #000060;" href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">"تعداد خطاها: "</span>.<span style="color: #0000ff;">$check</span>-><span style="color: #006600;">Num</span><span style="color: #66cc66;">()</span>.<span style="color: #ff0000;">"<br />"</span>; <span style="color: #b1b100;">foreach</span> <span style="color: #66cc66;">(</span><span style="color: #0000ff;">$check</span>-><span style="color: #006600;">Show</span><span style="color: #66cc66;">()</span> <span style="color: #b1b100;">as</span> <span style="color: #0000ff;">$v</span><span style="color: #66cc66;">)</span> <span style="color: #66cc66;">{</span> <a style="color: #000060;" href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">"<b>"</span>.<span style="color: #0000ff;">$v</span>.<span style="color: #ff0000;">"</b>"</span>; <span style="color: #66cc66;">}</span> <span style="color: #66cc66;">}</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">{</span> <a style="color: #000060;" href="http://www.php.net/echo"><span style="color: #000066;">echo</span></a> <span style="color: #ff0000;">"عملیات با موفقیت انجام شد"</span>; <span style="color: #66cc66;">}</span> |
اگه سوال دیگهای هم داشتین در قسمت نظرت میتونین مطرح کنید.
محمد جواد مسعودیان
آخرید نوشته های محمد جواد مسعودیان (نمایش همه )
- کلاسی برای چک کردن مقادیر - مارس ۸, ۲۰۰۹
قالب خیلی قشنگی شده . من یکی لذت بردم .
مرسی، اگه پیشنهادی هم دارین میتونین مطرح کنین ;)
مقاله professional بود ;-)
ولی فقط چرا این قالبت اینقدر شبیه قالب وبلاگ من شده؟! تو دست از این دله دزدی بازی ها بر نمیداری؟! سایتت رو که ساسپند کردم میفهمی :-” زود باش پاکش کن!
دیگه قالب عوض شده، حرف دیگه ای داری !
من فقط از رنگ وبلاگت ایده گرفتم، همین!!
برو بابا! کپی میکنی میگی ایده گرفتم!
سلام
ممنون که وقتتو صرف کردی و این کد رو در اختیار دیگران گذاشتی
در ضمن
نبی راست میگه !
یکمکی رنگ و آب وبلاگتو عوض کن
نبی با این چیزا گول نمیخوره !
یا علی
خواهش میکنم ;)
سلام ممنون عالی بود ولی اگه امکان داره چک کردن حروف فارسی رو هم بگین با این کلاس چجوریه ؟؟؟
ممنون از تشکرتون، بله من این امکان رو اضاف نکرده بودن، انشاالله در نسخهی جدیدش بزودی اضافه میکنم.