وباکا

آموزش تخصصی برنامه نویسی وب

گام هفدهم – استفاده از فیلدهای ضروری در فرم های پی اچ پی

این فصل نشان می دهد که چگونه فیلدهای ورودی مورد نیاز (اجباری) را در فرم های PHP ایجاد کرده و در صورت لزوم پیام های خطایی را نمایش دهید.

پی اچ پی – فیدهای مورد نیاز

از جدول قوانین اعتبار در گام قبلی، دیدید که فیلدهای “نام”، “پست الکترونیکی” و “جنسیت” مورد نیاز هستند . این فیلدها نباید خالی باشند و باید در فرم HTML پر شوند.
قوانین اعتبارسنجی برای فرم بالا به شرح زیر است:

نام : مورد نیاز + فقط باید حاوی حروف و فضای خالی باشد.
ایمیل: مورد نیاز + باید یک آدرس ایمیل معتبر (با @ و.) داشته باشد.
وب سایت:  اختیاری در صورت وجود، باید URL معتبر داشته باشد.
نظر: اختیاری فیلد ورودی چند خط (textarea).
جنسیت: مورد نیاز باید یکی را انتخاب کنید.

در بخش قبل، تمام فیلدها ورودی اختیاری بود.

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

<?php
// define variables and set to empty values
$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 – نمایش پیام های خطا

درادامه در فرم HTML، بعد از هر فیلد الزامی، یک اسکریپت کوچکی اضافه می کنیم که اگر در صورت نیاز، پیام خطای صحیح را تولید کند (یعنی اگر کاربر سعی کند فرم را بدون تکمیل فیلدهای مورد نیاز ارسال کند):

<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>
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
<input type="radio" name="gender" value="other">Other
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>

گام بعدی این است که داده های ورودی را بررسی و تائید کنید، اینکه “آیا فیلد نام فقط حاوی حروف و فضای سفید است؟” و “آیا فیلد ایمیل حاوی یک دستورالعمل آدرس ایمیل معتبر است؟” و اگر پر شود، ” آیا فیلد وب سایت دارای یک URL معتبر است؟ ”  و …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فهرست مطالب