برای کنترل وارد کردن اطلاعات اجباری توسط کاربر در فرمهای PHP، میتوان از روشهای مختلفی استفاده کرد. این روشها شامل اعتبار سنجی سمت سرور و همچنین استفاده از توابع PHP برای بررسی مقادیر ورودی هستند.
در راهکار قبلی ، با نحوه طراحی یک فرم ساده HTML آشنا شدید. اما فرم قبلی بسیار ساده و بدون هیچ امکاناتی بود. یکی از ایرادات فرم قبل این بود که کاربر می توانست حتی بدون وارد کردن داده های لازم در فیلد های فرم ، آن را ارسال یا Submit نماید.
به عبارت دیگر کاربر اجباری به پر کردن فیلدهای داده ای نداشت . اما در اکثر اوقات شما نیاز دارید تا کاربر اطلاعات اجباری را حتما در فیلدهای داده ای وارد نماید. در اینجاست که باید از مکانیزمی استفاده نموده تا آنها را مجبور به وارد نمودن اطلاعات کرده و در غیر اینصورت پیام هشدار صادر می کند.
حتما بخوانید: مرجع توابع کار با HTTP در PHP
در این راهکار قصد داریم تا نحوه چک کردن مقادیر ورودی توسط کاربر در فیلدهای فرم و در صورت لازم ، اعلام پیام هشدار به وی را آموزش دهیم .
مثال زیر یک فرم ثبت نام در 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 ExampleName: * E-mail: * Website: Comment: Gender: Female Male * |
نحوه طراحی کد لازم جهت چک نمودن ورودی های کاربر :
کد زیر عملیات چک کردن ورودی های لازم در فیلدهای مورد نظر را انجام داده و در صورت وارد نکردن هر کدام ، یک پیام هشدار صادر می کند .
برای این منظور در ابتدا 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”]);} }?> |
حتما بخوانید: مرجع توابع کار با پوشه ها در PHP
نحوه نمایش پیام های هشدار در صورت خالی بودن اطلاعات اجباری در فرم :
در مرحله بعدی ، ما یک قطعه کد اسکریپت را پس از هر فیلد لازم و اجباری به صورت زیر اضافه کرده ، تا در صورت خالی گذاشته شدن آن فیلد توسط کاربر و Submit فرم ، پیام هشدار لازم را به وی اعلام نماید .
کد | <form method=”post” action=”<?php echo htmlspecialchars($_SERVER[“PHP_SELF”]);?>”>
Name: <input type=”text” name=”name”> </form> |
نکته : اگر هر فیلدی پر شود ، متغیر پیام خطای مربوط به آن خالی بوده و در نتیجه خروجی پیام خطا برای آن فیلد ، نخواهیم داشت. حال که توانستیم پرکردن فیلدهای اجباری توسط کاربر را کنترل نماییم ، باید به اعتبار سنجی داده های ورودی توسط کاربر بپردازیم . در مرحله بعد قصد داریم تا شما را با نحوه اعتبار سنجی اطلاعات ورودی توسط کاربر آشنا سازیم. برای مثال فرض کنید، که کاربر بایستی در یک فیلد آدرس ایمیل وارد نماید. می خواهیم مکانیزمی طراحی کنیم تا بررسی کند، آیا آدرس ایمیل وارد شده توسط کاربر دارای فرمت صحیح یک ایمیل است یا خیر. اگر ایمیل وارد شده ساختار صحیح نداشت ، به وی پیام هشدار می دهد .
با دریافت « مشاوره برنامهنویسی، وب و سئو » از کارشناسان جوان حرفهای و باتجربه ساکوراد؛ موفقیت کسب و کار، رونق فروش و افزایش درآمد خود را تضمین کنید!
و اما کلام آخر…
با پیروی از این مراحل و نکات، میتوانید یک فرم با کنترلهای اعتبار سنجی مؤثر ایجاد کنید که از ورود اطلاعات نادرست جلوگیری کند و تجربه کاربری بهتری را فراهم آورد.