PHP – فیلدهای ضروری فرمها (PHP Form Required Fields)
فیلدهای ضروری فرمهای PHP
این فصل نشان میدهد که چگونه فیلدهای ورودی را ضروری کنیم و در صورت نیاز پیامهای خطا ایجاد کنیم.
فیلدهای ضروری PHP
بر اساس جدول قوانین اعتبارسنجی در صفحه قبل، میبینیم که فیلدهای “نام” (Name)، “ایمیل” (E-mail) و “جنسیت” (Gender) ضروری هستند. این فیلدها نمیتوانند خالی باشند و باید در فرم HTML پر شوند.
فیلد | قوانین اعتبارسنجی |
---|---|
نام | ضروری. + باید فقط حاوی حروف و فاصله باشد |
ایمیل | ضروری. + باید شامل یک آدرس ایمیل معتبر (با @ و .) باشد |
وبسایت | اختیاری. اگر موجود باشد، باید شامل یک URL معتبر باشد |
نظر | اختیاری. فیلد ورودی چند خطی (textarea) |
جنسیت | ضروری. باید یکی را انتخاب کنید |
کد PHP برای اعتبارسنجی فیلدهای ضروری
در کد زیر، چند متغیر جدید اضافه کردهایم: $nameErr
، $emailErr
، $genderErr
و $websiteErr
. این متغیرهای خطا پیامهای خطا برای فیلدهای ضروری را نگه میدارند. همچنین برای هر متغیر $_POST
یک عبارت if else اضافه کردهایم که بررسی میکند آیا متغیر $_POST
خالی است یا نه (با استفاده از تابع empty()
پیاچپی). اگر خالی باشد، یک پیام خطا در متغیرهای خطا ذخیره میشود و اگر خالی نباشد، دادههای ورودی کاربر را از طریق تابع test_input()
ارسال میکند:
// تعریف متغیرها و تنظیم آنها به مقادیر خالی
$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"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
نمایش پیامهای خطا در فرم HTML
در فرم 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 معتبر است؟”.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام