php نقل البيانات عبر الإستمارة

php معالجة و حماية البيانات

آخر تحيين: 07-06-2014

php أنواع الإستمارات php إنشاء الإستمارة


نفس ما تحدثنا عنه عند استعمالنا لمتغير الجدول GET ، سواء ما يتعلق بوجود البيانات و صحتها أو بحمايتها . ينطبق أيضا على POST . هنا أيضا يمكن لأي كان أن يعبث باستمارتكم ، إن لم تقوموا بحماية بياناتها أثناء المعالجة . و ستكونون عرضة لبعض الثغرات ، كثغرة XSS التي رأيناها سابقا .
لحماية أنفسنا من خطر هذه الثغرة ، ليس هناك أجدى من استعمال htmlspecialchars()
أما بالنسبة للتأكد من وجود البيانات و صحتها ، نستعمل ()isset و ()empty .

<?php
if(isset($_POST['pseudo']) AND !empty($_POST['pseudo']))
{
  echo htmlspecialchars($_POST['pseudo']);
}
else
{
  echo 'المعلومات غير صحيحة ';
}
?>

يمكننا أيضا ، استعمال بعض تعليمات php الجاهزة ، لتنظيف البيانات . مثلا لإزالة جميع الفراغات من بداية و نهاية النص ، نستخدم التعليمة ()trim

<?php
  // ..........
$pseudo = htmlspecialchars($_POST['pseudo']);
$pseudo = trim($pseudo);
 //........
?>

قليل من المراجعة

تخيلوا بأنكم تريدون فرض عدد معين من الحروف التي لايجب على الزائر تجاوزها ، أثناء كتابة إسمه . مثلا تريدون للأسماء التي يدخلها الأعضاء في الإستمارة ألا تتجاوز و لا تقل عن عدد معين من الحروف .
لقد رأينا سابقا دالة من دوال php تقوم بهذا الدور ، الذي هو عد مكونات النص . لقليل من التطبيق ، سنجعله كتمرين بسيط .


تمرين 1

لقبول اسم العضو ، لا يجب أن يتجاوز عدد حروف اسمه 20 حرفا و لا يقل عن 3 حروف
قم بتطبيق هذان الشرطان على الإسم في صفحة validate.php ؟


المساعدة !

حاولوا قبل مشاهدة الحل

تصحيح


تمرين 2

تخيلوا أن لديكم مجموعة من البيانات في الإستمارة ، و لحمايتها قررتم أن تستعملوا كل من htmlspecialchars و trim و stripslashes (تحذف جميع حركات backslashes "\" من النص) . كالتالي :

<?php
  // .....
 $pseudo = htmlspecialchars($_POST['pseudo']);
 $pseudo = trim($pseudo);
 $pseudo = stripslashes($pseudo);
 // ....
 $comment= htmlspecialchars($_POST['comment']);
 $comment= trim($comment);
 $comment= stripslashes($comment);
 // ...
?>

إلا أنه لديكم عدد كبير من المتغيرات ، و يجب أن تطبقوا نفس الحماية عليها جميعا ، ما يعني إعادة كتابة نفس الشيفرة مرارا و تكرارا . أليس هذا مرهقا في نظركم ؟ أظن أنكم عرفتم ما هو المطلوب منكم !
السؤال : قوموا بإنشاء دالّة ، تسهل عليكم عدم تكرار نفس شيفرات الحماية ؟


التصحيح