إحدى الوظائف الأكثر شيوعًا على الموقع هي نموذج الطلب أو الطلب، حيث يتم إرسال البيانات منه عبر البريد الإلكتروني إلى مالك الموقع. كقاعدة عامة، هذه النماذج بسيطة وتتكون من حقلين أو ثلاثة حقول لإدخال البيانات. كيفية إنشاء نموذج الطلب هذا؟ وهذا يتطلب استخدام لغة ترميز HTML ولغة برمجة PHP.
لغة ترميز HTML نفسها بسيطة؛ كل ما عليك فعله هو معرفة كيفية ومكان وضع علامات معينة. مع لغة برمجة PHP، الأمور أكثر تعقيدًا بعض الشيء.
بالنسبة للمبرمج، فإن إنشاء مثل هذا النموذج ليس بالأمر الصعب، ولكن بالنسبة لمصمم تخطيط HTML، قد تبدو بعض الإجراءات صعبة.
السطر الأول سيكون على النحو التالي
الآن دعونا نجمع كل شيء معًا.
الآن دعونا نجعل الحقول في النموذج إلزامية. لدينا الكود التالي:
سيكون هذا ملفًا يسمى send.php
في الملف، في المرحلة الأولى، تحتاج إلى قبول البيانات من مصفوفة النشر. للقيام بذلك، نقوم بإنشاء متغيرين:
$fio = $_POST["fio"];
$email = $_POST["email"];
تُسبق أسماء المتغيرات في لغة PHP بعلامة $، ويتم وضع فاصلة منقوطة في نهاية كل سطر. $_POST عبارة عن مصفوفة يتم إرسال البيانات من النموذج إليها. في نموذج html، يتم تحديد طريقة الإرسال على أنها طريقة = "post". وبالتالي، يتم أخذ متغيرين من نماذج أتش تي أم أل. لحماية موقعك، تحتاج إلى تمرير هذه المتغيرات من خلال عدة مرشحات - وظائف php.
ستقوم الوظيفة الأولى بتحويل كافة الأحرف التي سيحاول المستخدم إضافتها إلى النموذج:
في هذه الحالة، لا يتم إنشاء متغيرات جديدة في PHP، ولكن يتم استخدام المتغيرات الموجودة. ما سيفعله الفلتر هو تحويل الشخصية "<" в "<". Также он поступить с другими символами, встречающимися в html коде.
تقوم الوظيفة الثانية بفك ترميز عنوان URL إذا حاول المستخدم إضافته إلى النموذج.
$fio = urldecode($fio);
$email = urldecode($email);
أما الدالة الثالثة فسوف نقوم بإزالة المسافات من بداية السطر ونهايته إن وجدت:
$fio = تقليم($fio);
البريد الإلكتروني $ = تقليم($email);
هناك وظائف أخرى تسمح لك بتصفية متغيرات PHP. ويعتمد استخدامها على مدى قلقك من أن أحد المهاجمين سيحاول إضافة رمز برنامج إلى نموذج إرسال البريد الإلكتروني بتنسيق html هذا.
التحقق من صحة البيانات المنقولة من نموذج HTML إلى ملف PHP
للتحقق مما إذا كان هذا الرمز يعمل وما إذا كان يتم نقل البيانات، يمكنك ببساطة عرضه على الشاشة باستخدام وظيفة الصدى:
صدى $FIO;
صدى "
";
صدى البريد الإلكتروني $؛
السطر الثاني هنا ضروري لفصل مخرجات متغيرات php إلى أسطر مختلفة.
لإرسال البيانات عبر البريد الإلكتروني، تحتاج إلى استخدام وظيفة البريد في PHP.
mail("إلى أي عنوان سيتم إرساله"، "موضوع الرسالة"، "الرسالة (نص الرسالة)"،"من: من أي بريد إلكتروني يتم إرسال الرسالة \r\n");
على سبيل المثال، تحتاج إلى إرسال البيانات إلى البريد الإلكتروني لمالك الموقع أو مديره [البريد الإلكتروني محمي].
يجب أن يكون موضوع الرسالة واضحا، ويجب أن تحتوي رسالة الرسالة على ما حدده المستخدم في نموذج HTML.
بريد(" [البريد الإلكتروني محمي]"، "الطلب من الموقع"، "الاسم الكامل:".$fio.". البريد الإلكتروني: ".$email،"من: [البريد الإلكتروني محمي]\r\n");
من الضروري إضافة شرط يتحقق مما إذا كان النموذج قد تم إرساله باستخدام PHP إلى عنوان البريد الإلكتروني المحدد.
إذا (البريد(" [البريد الإلكتروني محمي]"، "الطلب من الموقع"، "الاسم الكامل:".$fio.". البريد الإلكتروني: ".$email،"من: [البريد الإلكتروني محمي]\r\n"))
{
صدى "تم إرسال الرسالة بنجاح" ؛
) آخر (
}
وبالتالي، فإن رمز البرنامج الخاص بملف send.php، الذي سيرسل بيانات نموذج HTML إلى البريد الإلكتروني، سيبدو كما يلي:
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = تقليم($fio);
البريد الإلكتروني $ = تقليم($email);
//صدى $fio;
//صدى "
";
// صدى $ البريد الإلكتروني؛
إذا (البريد(" [البريد الإلكتروني محمي]"، "الطلب من الموقع"، "الاسم الكامل:".$fio.". البريد الإلكتروني: ".$email،"من: [البريد الإلكتروني محمي]\r\n"))
(صدى "تم إرسال الرسالة بنجاح"؛
) آخر (
صدى "حدثت أخطاء أثناء إرسال الرسالة"؛
}?>
تم التعليق على ثلاثة أسطر للتحقق مما إذا كان يتم نقل البيانات إلى الملف. إذا لزم الأمر، يمكن إزالتها، لأنها كانت هناك حاجة إليها فقط لتصحيح الأخطاء.
في التعليقات على هذه المقالة، يطرح العديد من الأشخاص سؤالاً حول كيفية التأكد من أن نموذج HTML ورمز PHP لإرسال البيانات إلى البريد الإلكتروني موجودان في ملف واحد، وليس ملفين.
لتنفيذ هذا العمل، تحتاج إلى وضع كود HTML الخاص بالنموذج في ملف send.php وإضافة شرط يتحقق من وجود المتغيرات في مصفوفة POST (يتم إرسال هذه المصفوفة من النموذج). أي أنه إذا كانت المتغيرات في المصفوفة غير موجودة، فأنت بحاجة إلى إظهار النموذج للمستخدم. بخلاف ذلك، ستحتاج إلى تلقي البيانات من المصفوفة وإرسالها إلى المستلم.
دعونا نرى كيفية تغيير كود PHP في ملف send.php:
نتحقق من وجود متغير في مصفوفة POST باستخدام دالة PHP isset(). علامة التعجب قبل هذه الدالة في الحالة تعني النفي. أي أنه إذا كان المتغير غير موجود، فعلينا إظهار النموذج الخاص بنا. إذا لم أضع علامة تعجب، فإن الشرط يعني حرفيًا "إذا كان موجودًا، فقم بإظهار النموذج". وهذا خطأ في حالتنا. وبطبيعة الحال، يمكنك إعادة تسميته إلى Index.php. إذا قمت بإعادة تسمية الملف، فلا تنس إعادة تسمية اسم الملف في السطر