آموزش PHP > راهکارهای موثر در PHP > راهکار های کار با فرم ها در
PHP
بخش دوم : آموزش کنترل وارد نمودن اطلاعات اجباری توسط کاربر در فرم های PHP
مقدمه :
در راهکار قبلی ، با نحوه طراحی یک
فرم ساده HTML آشنا شدید . اما فرم قبلی بسیار ساده و بدون هیچ امکاناتی بود
. یکی از ایرادات فرم قبل این بود که کاربر می توانست حتی بدون وارد کردن داده های
لازم در فیلد های فرم ، آن را ارسال یا Submit نماید .
به عبارت دیگر کاربر اجباری به پر کردن فیلدهای داده ای نداشت . اما در اکثر اوقات
شما نیاز دارید تا کاربر اطلاعاتی را حتما در فیلدهای داده ای وارد نماید . در اینجاست
که باید از مکانیزمی استفاده نموده تا آنها را مجبور به وارد نمودن اطلاعات کرده و
در غیر اینصورت پیام هشدار صادر می کند .
در این راهکار قصد داریم تا نحوه چک کردن مقادیر ورودی توسط کاربر در فیلدهای فرم و
در صورت لازم ، اعلام پیام هشدار به وی را آموزش دهیم .
مثال زیر یک فرم ثبت نام در PHP را نشان می دهد ، که در آن چندین فیلد برای وارد نمودن
داده ها ، یک دکمه رادیویی جهت تعیین جنسیت و یک دکمه برای ارسال یا Submit فرم قرار
دارد .
در این فرم ، همانطور که در جدول معرفی انواع فیلدهای آن نشان داده شده ، وارد نمودن
مقدار برای فیلدهای " Name " و " E-mail " و همچنین انتخاب یک گزینه از جنسیت اجباری
است . اما سایر فیلدها می توانند به دلخواه کاربر پر شده یا خالی رها شوند .
به فرم زیر و جدول فیلدهای آن دقت نمایید :
|
کد
|
<form method="post" action="/php/demo_form_validation_complete.php">
Name: <input type="text" name="name" value="">
<span class="error">* </span>
<br>
E-mail: <input type="text" name="email" value="">
<span class="error">* </span>
<br>
Website: <input type="text" name="website" value="">
<span class="error"></span>
<br>
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br>
Gender: <input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male <span
class="error">* </span>
<br>
<input type="submit" name="submit" value="Submit">
</form>
|
|
خروجی
|
PHP Form Example
|
نحوه طراحی کد لازم جهت چک نمودن ورودی های کاربر :
کد زیر عملیات چک کردن ورودی های لازم در فیلدهای مورد نظر را انجام داده و در صورت
وارد نکردن هر کدام ، یک پیام هشدار صادر می کند .
برای این منظور در ابتدا 4 متغیر NameErr$ و genderErr$ و EmailErr$ و WebsiteErr$
را تعریف کرده ایم . این متغیرها ، برای دریافت و نمایش پیام های هشدار در صورت خالی
بودن هر کدام از فیلدهای اجباری به کار می روند .
همچنین به ازای هر متغیر ارسال شده از سوی فرم توسط متد POST ، یک دستور شرطی if طراحی
شده که مقدار متغیر را توسط ( ) empty یا خالی نبودن ، می سنجد . سپس در صورتی که مقدار
متغیر خالی باشد ( یعنی کاربر مقداری را برای فیلد وارد نکرده است ) یک پیام هشدار
، در متغیر مربوطه ذخیره شده تا به کاربر اعلام شود .
اما اگر مقداری وارد شده باشد ، توسط تابع ( ) test_input بررسی شده و سپس به مقصد
ارسال می شود .
|
کد
|
<?php
// تعریف متغیرهای لازم برای نگهداری پیام های خطا و تنظیم اولیه
آنها بر روی مقدار خالی
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["name"]))
{$nameErr
= "Name is required";}
else
{$name
= test_input($_POST["name"]);}
if (empty($_POST["email"]))
{$emailErr
= "Email is required";}
else
{$email
= test_input($_POST["email"]);}
if (empty($_POST["website"]))
{$website
= "";}
else
{$website = test_input($_POST["website"]);}
if (empty($_POST["comment"]))
{$comment = "";}
else
{$comment = test_input($_POST["comment"]);}
if (empty($_POST["gender"]))
{$genderErr = "Gender
is required";}
else
{$gender = test_input($_POST["gender"]);}
}
?>
|
نحوه نمایش پیام های هشدار در صورت خالی بودن فیلدهای اجباری در فرم :
در مرحله بعدی ، ما یک قطعه کد اسکریپت را پس از هر فیلد لازم و اجباری به صورت زیر
اضافه کرده ، تا در صورت خالی گذاشته شدن آن فیلد توسط کاربر و Submit فرم ، پیام هشدار
لازم را به وی اعلام نماید .
|
کد
|
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail:
<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
Website:<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
<label>Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
|
نکته : اگر هر فیلدی پر شود ، متغیر پیام خطای مربوط به آن خالی بوده
و در نتیجه خروجی پیام خطا برای آن فیلد ، نخواهیم داشت .
حال که توانستیم پرکردن فیلدهای اجباری توسط کاربر را کنترل نماییم ، باید به اعتبار
سنجی داده های ورودی توسط کاربر بپردازیم .
در مرحله بعد قصد داریم تا شما را با نحوه اعتبار سنجی اطلاعات ورودی توسط کاربر آشنا
سازیم . برای مثال فرض کنید ، که کاربر بایستی در یک فیلد آدرس ایمیل وارد نماید .
می خواهیم مکانیزمی طراحی کنیم تا بررسی کند ، آیا آدرس ایمیل وارد شده توسط کاربر
دارای فرمت صحیح یک ایمیل است یا خیر . اگر ایمیل وارد شده ساختار صحیح نداشت ، به
وی پیام هشدار می دهد .
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه :