معالجة النماذج في PHP

استخدمت المتغيرات العالمية الكبرى في PHP $_GET و $_POST لجمع بيانات النموذج (form-data).

PHP - نموذج HTML بسيط

مثال يوضح نموذج HTML بسيط يحتوي على مجالين إدخال وأزرار تقديم الطلب:

مثال

<html>
<body>
<form action="welcome.php" method="post">
الاسم: <input type="text" name="name"><br>
البريد الإلكتروني: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

تشغيل مثال

عندما يملأ المستخدم هذا النموذج ويضغط على زر الترسيم، يتم إرسال بيانات النموذج إلى ملف PHP المسمى "welcome.php" للمعالجة. يتم إرسال بيانات النموذج عبر طريقة HTTP POST.

إذا كنت ترغب في عرض البيانات المرسلة، يمكنك ببساطة إخراج (echo) جميع المتغيرات."welcome.php" هو كالتالي:

<html>
<body>
مرحبًا <?php echo $_POST["name"]; ?><br>
عنوان بريدك الإلكتروني هو: <?php echo $_POST["email"]; ?>
</body>
</html>

الناتج:

مرحبًا Bill
عنوان بريدك الإلكتروني هو Bill.Gates@example.com

يمكنك أيضًا الحصول على نفس النتيجة باستخدام طريقة HTTP GET:

مثال

<html>
<body>
<form action="welcome_get.php" method="get">
الاسم: <input type="text" name="name"><br>
البريد الإلكتروني: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

تشغيل مثال

"welcome_get.php" هو كالتالي:

<html>
<body>
مرحبًا <?php echo $_GET["name"]; ?><br>
عنوان بريدك الإلكتروني هو: <?php echo $_GET["email"]; ?>
</body>
</html>

الشيفرة أعلاه بسيطة. ولكن، تم فقدان المحتوى الأهم. يجب عليك التحقق من بيانات النموذج لمنع وجود ثغرات في البرنامج.

ملاحظة:لاحظ أمان نموذج PHP عند التعامل معه!

لا يحتوي هذا الصفحة على أي برنامج التحقق من صحة النموذج، إنه يعرض فقط كيفية إرسال واستقبال بيانات النموذج.

لكن الفصول القادمة ستشرح لك كيفية تحسين أمان نموذج PHP! إن التحقق من صحة النموذج بشكل مناسب مهم جدًا للدفاع ضد الهجمات الإلكترونية ورسائل البريد العشوائي!

GET مقابل POST

GET و POST كلاهما يخلقان مصفوفة (مثل، array( key => value, key2 => value2, key3 => value3, ...) ). تحتوي هذه المصفوفة على أزواج مفتاح/قيمة، حيث يكون المفتاح هو اسم عنصر نموذج النموذج، والقيمة هي بيانات الإدخال من المستخدم.

GET 和 POST 被视作 $_GET 和 $_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域 - 无需任何特殊代码,您能够从任何函数、类或文件访问它们。

$_GET 是通过 URL 参数传递到当前脚本的变量数组。

$_POST 是通过 HTTP POST 传递到当前脚本的变量数组。

何时使用 GET?

通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大约 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。

GET 可用于发送非敏感的数据。

注释:绝不能使用 GET 来发送密码或其他敏感信息!

何时使用 POST?

通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制

此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。

不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。

提示:开发者偏爱 POST 来发送表单数据。

接下来让我们看看如何安全地处理 PHP 表单!