اعتبارسنجی داده های فرم با PHP(Validate Form Data With PHP)

اولین کاری که انجام می دهیم این است که همه متغیرها را از طریق تابع htmlspecialchars() PHP منتقل کنیم.


وقتی از تابع htmlspecialchars() استفاده می کنیم. سپس اگر کاربر سعی کند موارد زیر را در یک فیلد متنی ارسال کند:


<script>location.href('http://www.hacked.com')</script>


- این اجرا نمی شود، زیرا به عنوان کد فرار از HTML ذخیره می شود، مانند این:


&lt;script&gt;location.href('http://www.hacked.com')&lt;/script&gt;


کد اکنون برای نمایش در یک صفحه یا داخل یک ایمیل امن است.


هنگامی که کاربر فرم را ارسال کند، دو کار دیگر نیز انجام خواهیم داد:



  1. کاراکترهای غیر ضروری (فضای اضافی، برگه، خط جدید) را از داده های ورودی کاربر (با تابع PHP trim() حذف کنید

  2. حذف بک اسلش () از داده های ورودی کاربر (با تابع PHP stripslashes())



مرحله بعدی ایجاد تابعی است که تمام بررسی ها را برای ما انجام می دهد
(که بسیار راحت تر از نوشتن یک کد یکسان است).


ما تابع test_input().

را نامگذاری می کنیم

اکنون، ما می توانیم
هر متغیر $_POST را با تابع test_input() بررسی کنید و اسکریپت به شکل زیر است:



مثال



<?php
// define variables and set to empty values
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $name = test_input($_POST["name"]);
  $email = test_input($_POST["email"]);

 
$website = test_input($_POST["website"]);
  $comment = test_input($_POST["comment"]);
  $gender = test_input($_POST["gender"]);
}


function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;

}
?>





توجه کنید که در ابتدای اسکریپت، بررسی می کنیم که آیا فرم وجود داشته است یا خیر
با استفاده از $_SERVER["REQUEST_METHOD"] ارسال شد. اگر REQUEST_METHOD POST است، پس
فرم ارسال شده است - و آن
باید تایید شود. اگر ارسال نشده است، از تأیید اعتبار رد شوید و
یک فرم خالی نمایش دهید.


اما، در مثال بالا، تمام فیلدهای ورودی اختیاری هستند. فیلمنامه
حتی اگر کاربر هیچ داده ای را وارد نکند خوب کار می کند.


مرحله بعدی این است که فیلدهای ورودی را الزامی کنید و اگر پیام‌های خطا ایجاد کنید
مورد نیاز است.