فرم ها در PHP: الزامی کردن فیلد ها + اعتبار سنجی نام، URL و ایمیل

PHP 7 Forms - Required Fields

0 318

الزامی کردن فیلدها برای کاربران

در جلسه ی قبل فرمی را پاک سازی کردیم اما فیلدهای آن اختیاری بودند. جدول جلسه ی قبل را به یاد دارید؟

فیلد مورد نظر قانون اعتبار سنجی
Name (نام کاربر) Required (یعنی پر کردن این قسمت الزامی است). فقط باید شامل حروف و اسپیس باشد (نمیتواند هیچ عددی، علامت خاصی یا … بگیرد).
E-mail (ایمیل) Required. همچنین باید قالب ایمیل را داشته باشد یعنی دارای علامت @ و . (نقطه) باشد.
Website (وب سایت کاربر) Optional (یعنی پر کردن این قسمت دلخواه است). همچنین باید از قالب URL ها پیروی کند.
Comment (نظر کاربر) Optional و درون یک textarea است.
Gender (جنسیت کاربر) Required حتما باید یکی را انتخاب کرده باشد.

بنابراین در این جلسه می خواهیم فیلدهای فرم ها در PHP 7 را الزامی کنیم تا اگر کاربران فیلدی را خالی گذاشتند پیام خطا برایشان ارسال شود.

در کد امروز چند متغیر جدید تعریف کرده ایم: nameErr و emailErr و genderErr و websiteErr. این متغیرها پیام های خطا را برای هر یک از فیلدهای الزامی می گیرند و بعدا به کاربر نشان می دهند. همچنین به کدها و برای هر متغیر POST_$ یک if else اضافه کرده ایم تا ببینیم متغیر خالی است یا خیر (با کمک تابع ()empty در PHP). اگر متغیر خالی باشد پیام خطایی را در متغیر مربوطه اش قرار می دهیم در غیر این صورت اطلاعات را از تابع ()test_input رد خواهیم کرد.

کد ما تا این لحظه به شکل زیر است:

سپس به فیلدهای فرم در قسمت HTML اسکریپت کوچکی اضافه کرده ایم تا پیام خطا را به کاربر نمایش دهد. بنابراین:

صفحه ی تست این کد

اعتبارسنجی نام، URL و ایمیل

بر اساس جدولی که اول مقاله دیدیم قرار است نام کاربر تنها از حروف و فاصله (اسپیس) تشکل شده باشد. با کد زیر به راحتی می توان این کار را انجام داد:

این کد ابتدا نام کاربر را بر اساس regular expression خاصی چک می کند (تابع ()preg_match) تا ببیند آیا شرط برقرار است یا خیر. اگر برقرار بود که مشکلی وجود ندارد اما اگر برقرار نبود پیام خطای Only letters and white space allowed برای کاربر نمایش داده خواهد شد.

برای اعتبارسنجی ایمیل کارمان راحت تر است چرا که filter_var این کار را برایمان انجام می دهد و نیازی به استفاده از regular expression ها نیست. به کد زیر توجه کنید:

برای اعتبار سنجی URL باید دوباره به سراغ regular expression ها برویم. regular expression خاصی که ما استفاده کرده ایم به کاربر اجازه ی استفاده از - (خط فاصله) را نیز می دهد:

حالا اسکریپت ما به شکل زیر درآمده است:

صفحه ی تست این کد

قدم آخر برای تکمیل فرم این است که مقادیر ارسالی کاربر را در صورت بروز خطا نگه داریم. متاسفانه اکثر فرم ها در وب سایت ها در صورت بروز خطا تمامی اطلاعات را دور میریزند و کاربر باید دوباره آن ها را وارد کند که به نوبه ی خود بسیار آزاد دهنده است اما ما می خواهیم این مشکل را حل کنیم؛ برای این کار اسکریپت کوچکی در قسمت value فرم (قسمت های name و email و website) اضافه می کنیم. برای textarea نیز اسکریپت را بین تگ های <textarea> و </textarea> قرار می دهیم. برای radio button نیز باید attribute ای به نام checked (نه مقدار value) را تنظیم کنیم. این اسکریپت کوچک مقادیر این فیلدها را نگه می دارد:

صفحه ی تست کد تکمیل شده

نکته: این مقاله و قسمت قبلی موارد پایه ای را شامل می شوند اما به مباحث پایگاه داده و … نپرداخته اند. برای مرور بحث های پایگاه داده باید به دوره ی آموزش PDO سر بزنید.

امیدواریم از بحث فرم ها در PHP 7 استفاده کافی را برده باشید.

ترتیبی که روکسو برای یادگیری مطالب سری آموزش PHP 7 به شما توصیه می‌کند:

ارسال نظر

توجه:‌ آدرس ایمیل شما منتشر نخواهد شد.

film izle | eskisehir escort | modanisa | mersin escort | www.ieski.com | eskort adana | www.izmir-eskort.org | kabak koyu | hd tv izle