وPHP superglobals _GET $ و $ _POST تستخدم لجمع البيانات النموذج.
PHP - A نموذج HTML بسيط
يعرض المثال التالي شكل HTML بسيط مع اثنين من حقول الإدخال وزر الإرسال:
مثال
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
تشغيل المثال » عندما يملأ المستخدم النموذج أعلاه وينقر على زر الإرسال، يتم إرسال بيانات النموذج للمعالجة لملف PHP اسمه "welcome.php" . يتم إرسال بيانات النموذج باستخدام طريقة HTTP POST.
لعرض البيانات المقدمة هل يمكن ببساطة صدى جميع المتغيرات. و "welcome.php" يبدو مثل هذا:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
الناتج يمكن أن يكون شيء من هذا القبيل:
Welcome John
Your email address is [email protected]
ويمكن أيضا أن يتحقق نفس النتيجة باستخدام طريقة HTTP GET:
مثال
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
تشغيل المثال » و "welcome_get.php" يبدو مثل هذا:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
رمز أعلاه هو بسيط جدا. ومع ذلك، فإن أهم شيء مفقود. تحتاج إلى التحقق من صحة بيانات النموذج لحماية السيناريو الخاص بك من الشيفرات الخبيثة.
أعتقد SECURITY عند معالجة أشكال PHP!
هذه الصفحة لا تحتوي على أي التحقق من صحة النموذج، فإنه يظهر فقط كيف يمكنك إرسال واسترداد بيانات النموذج.
ومع ذلك، فإن الصفحات التالية تظهر كيفية معالجة أشكال PHP مع الأمن في الاعتبار! التحقق من صحة السليم للبيانات النموذج مهم لحماية النموذج الخاص بك من المتسللين والمتطفلين!
الحصول على مقابل وظيفة
على حد سواء الحصول على وظيفة إنشاء صفيف (على سبيل المثال array( key => value, key2 => value2, key3 => value3, ...) ). هذه المجموعة تحمل أزواج مفتاح / قيمة، حيث مفاتيح هي أسماء عناصر تحكم النموذج والقيم هي البيانات المدخلة من قبل المستخدم.
كلا GET و يتم التعامل POST كما _GET $ و $ _POST. هذه هي superglobals، وهو ما يعني أنهم دائما يمكن الوصول إليها، بغض النظر عن نطاق - ويمكنك الوصول إليها من أي وظيفة أو الطبقة أو ملف دون الحاجة إلى القيام بأي شيء خاص.
$ _GET هو مجموعة من المتغيرات التي تم تمريرها إلى السيناريو الحالي عبر المعلمات URL.
$ _POST هو مجموعة من المتغيرات التي تم تمريرها إلى السيناريو الحالي عبر طريقة HTTP POST.
متى تستخدم يحصل؟
المعلومات المرسلة من نموذج مع طريقة GET مرئيا للجميع (يتم عرض كافة أسماء وقيم المتغيرات في URL). الحصول على ديها أيضا حدود لكمية المعلومات لإرسالها. الحد حوالي 2000 حرفا. ومع ذلك، لأنه يتم عرض المتغيرات في URL، فمن الممكن أن المرجعية الصفحة. هذا يمكن أن يكون مفيدا في بعض الحالات.
GET يمكن أن تستخدم لإرسال البيانات غير الحساسة.
Note: يجب ألا تستخدم أبدا لإرسال كلمات المرور أو غيرها من المعلومات الحساسة تحصل!
متى تستخدم وظيفة؟
المعلومات المرسلة من نموذج مع الأسلوب POST غير مرئية للآخرين (all names/values are embedded within the body of the HTTP request) وليس لديها قيود على كمية المعلومات لإرسالها.
وعلاوة على ذلك ظيفة يدعم وظائف متقدمة مثل دعم متعددة الأجزاء مدخلات ثنائي أثناء تحميل الملفات إلى الخادم.
ومع ذلك، لأنه لم يتم عرض المتغيرات في URL، فإنه من غير الممكن أن المرجعية الصفحة.
المطورون يفضلون وظيفة لإرسال بيانات النموذج.
بعد ذلك، دعونا نرى كيف يمكننا معالجة أشكال PHP في طريقة آمنة!