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

تُضمّن النماذج في عنصر HTML . يحدد عنصر HTML هذا نقطة نهاية الاتصال التي يجب إرسال البيانات المُدخلة في النموذج إليها، وطريقة إرسال البيانات .<form>GETPOST
عناصر
يمكن أن تتكون النماذج من عناصر واجهة المستخدم الرسومية القياسية:
<button>— زر يمكن ربطه بإجراء مثل إرسال النموذج أو إعادة تعيين النموذج أو تنفيذ دالة جافا سكريبت.<input>— عنصر لإدخال المستخدم. يختلف العنصر باختلاف قيمة سمتهtype.<textarea>— يشبه إلى حد كبير حقل الإدخال، باستثناء أنه يسمح بعرض وإدخال عدة صفوف من البيانات<text><textarea><select>— قائمة منسدلة تعرض قائمة بالعناصر التي يمكن للمستخدم الاختيار من بينها
يمكن أن يحتوي عنصر الإدخال على الأنواع التالية:
text— مربع نص بسيط يسمح بإدخال سطر واحد من النص.email- نوع يتطلب عنوان بريد إلكتروني تم التحقق منه جزئيًا<text>number- نوع يتطلب رقمًا<text>password— على غرار ذلك ، يُستخدم لأغراض أمنية، حيث تكون الأحرف المكتوبة غير مرئية أو يتم استبدالها برموز مثل *<text>tel— رقم هاتفradio— زر راديوfile— عنصر تحكم لاختيار الملفات لتحميل ملفreset— زر إعادة الضبط الذي، عند تفعيله، يخبر المتصفح باستعادة قيم النموذج الحالي إلى قيمها الأولية.submit— زر يُخبر المتصفح باتخاذ إجراء بشأن النموذج (عادةً لإرساله إلى خادم)
تُظهر الصورة النموذجية على اليمين معظم هذه العناصر:
- مربع نص يطلب اسمك
- زوج من أزرار الاختيار يطلب منك الاختيار بين القيم الجنسية
- مربع اختيار يعرض لك قائمة بألوان العيون للاختيار من بينها
- مربعان للاختيار، انقر عليهما إذا كانا ينطبقان عليك.
- مساحة نصية لوصف قدراتك الرياضية
- زر إرسال لإرسال قيم النموذج الحالية إلى الخادم
توفر هذه العناصر الأساسية أكثر عناصر واجهة المستخدم الرسومية شيوعًا ، ولكن ليس جميعها. على سبيل المثال، لا يوجد ما يعادل عرض الشجرة أو عرض الشبكة .
يمكن محاكاة عرض الشبكة باستخدام جدول HTML قياسي ، حيث تحتوي كل خلية على حقل إدخال نصي. كما يمكن محاكاة عرض الشجرة باستخدام جداول متداخلة، أو قوائم متداخلة (وهو التعبير الأنسب من الناحية الدلالية) . في كلتا الحالتين، تتولى عملية على جانب الخادم معالجة المعلومات، بينما يتولى جافا سكريبت تفاعل المستخدم. تتوفر تطبيقات عناصر واجهة المستخدم هذه من خلال مكتبات جافا سكريبت مثل jQuery .
قدّمت لغة HTML 4 الوسم <label>، الذي يُستخدم لتمثيل عنوان في واجهة المستخدم، ويمكن ربطه بعنصر تحكم نموذج مُحدد من خلال تحديد سمة عنصر التحكم في سمة الوسم <label> . [ 1 ] يسمح هذا للوسوم بالبقاء مع عناصرها عند تغيير حجم النافذة، كما يُتيح وظائف تُشبه وظائف سطح المكتب (على سبيل المثال، النقر على زر اختيار أو تسمية مربع اختيار سيؤدي إلى تنشيط عنصر الإدخال المرتبط به).<label>idfor
يُقدّم HTML 5 عددًا من أنواع الإدخال التي يُمكن تمثيلها بعناصر واجهة أخرى. يعتمد بعضها على حقول إدخال نصية، وهي مُخصصة لإدخال بيانات شائعة مُحددة والتحقق من صحتها. تشمل هذه البيانات emailإدخال عناوين البريد الإلكتروني، telوأرقام الهواتف، numberوالقيم الرقمية. توجد سمات إضافية لتحديد الحقول الإلزامية، والحقول التي يجب أن يكون لها تركيز لوحة المفاتيح عند تحميل صفحة الويب التي تحتوي على النموذج، ونص توضيحي يُعرض داخل الحقل ولكنه ليس إدخالًا من المستخدم (مثل نص "بحث" الذي يظهر في العديد من حقول إدخال البحث قبل إدخال مصطلح البحث). كانت هذه المهام تُعالج سابقًا باستخدام JavaScript ، ولكن نظرًا لشيوعها، أُضيف دعمها إلى المعيار. dateيعرض نوع الإدخال تقويمًا يُمكن للمستخدم من خلاله اختيار تاريخ أو نطاق زمني. [ 2 ] [ 3 ] كما colorيُمكن تمثيل نوع الإدخال كنص إدخال يتحقق ببساطة من أن القيمة المُدخلة هي تمثيل سداسي عشري صحيح للون، وفقًا للمواصفات، [ 4 ] أو كأداة لاختيار الألوان (وهذا الأخير هو الحل المُستخدم في مُعظم المتصفحات التي تدعم هذه السمة).
استسلام
عند إرسال البيانات المُدخلة في نماذج HTML، تُشفّر الأسماء والقيم الموجودة في عناصر النموذج وتُرسل إلى الخادم في رسالة طلب HTTP باستخدام GET أو POST . تاريخيًا، كان يُستخدم البريد الإلكتروني أيضًا. [ 5 ] يعتمد نوع MIME الافتراضي (نوع وسائط الإنترنت) ، application/x-www-form-urlencoded ، على إصدار مبكر جدًا من قواعد التشفير المئوي العامة ، مع عدد من التعديلات مثل توحيد أسطر جديدة واستبدال المسافات بـ " +" بدلًا من " %20". يتوفر أيضًا تشفير آخر ممكن، وهو نوع وسائط الإنترنت multipart/form-data ، وهو شائع الاستخدام في عمليات إرسال الملفات باستخدام POST.
يُستخدم مع لغات البرمجة
تُستخدم النماذج عادةً مع البرامج المكتوبة بلغات برمجة مختلفة لتمكين المطورين من إنشاء مواقع ويب ديناميكية . وتشمل اللغات الأكثر شيوعًا لغات البرمجة من جانب العميل و/أو لغات البرمجة من جانب الخادم.
على الرغم من أنه يمكن استخدام أي لغة برمجة على الخادم لمعالجة بيانات النموذج، إلا أن لغات البرمجة النصية هي الأكثر استخدامًا ، والتي تميل إلى امتلاك وظائف معالجة سلاسل أقوى من لغات البرمجة مثل C، كما أنها تتمتع بإدارة تلقائية للذاكرة مما يساعد على منع هجمات تجاوز سعة المخزن المؤقت .
جانب العميل
لغة البرمجة النصية الفعلية من جانب العميل لمواقع الويب هي جافا سكريبت . يؤدي استخدام جافا سكريبت على نموذج كائن المستند (DOM) إلى أسلوب HTML الديناميكي الذي يسمح بإنشاء وتعديل صفحة الويب ديناميكيًا داخل المتصفح.
على الرغم من أن لغات البرمجة من جانب العميل المستخدمة مع النماذج محدودة، إلا أنها غالبًا ما تُستخدم للتحقق المسبق من صحة بيانات النموذج و/أو لإعدادها لإرسالها إلى برنامج الخادم. لكن هذا الاستخدام يتلاشى تدريجيًا مع أنواع الحقول والخصائص الجديدة في HTML5 .inputrequired
التنفيذ من جانب الخادم
يُمكن لبرمجيات جانب الخادم تنفيذ مجموعة واسعة من المهام لإنشاء مواقع ويب ديناميكية، وهي مهام لا يُمكن لبرمجيات جانب العميل القيام بها لأسباب تقنية أو أمنية، بدءًا من التحقق من تسجيل الدخول ، مرورًا باسترجاع البيانات وتخزينها في قاعدة البيانات ، وصولًا إلى التدقيق الإملائي وإرسال البريد الإلكتروني . ومن أهم مزايا تنفيذ جانب الخادم على جانب العميل تركيز الوظائف على الخادم بدلًا من الاعتماد على متصفحات الويب المختلفة لتنفيذ وظائف متنوعة بطرق متسقة وموحدة . بالإضافة إلى ذلك، غالبًا ما تُؤدي معالجة النماذج على الخادم إلى زيادة الأمان إذا صُمم تنفيذ جانب الخادم بحيث لا يثق بالبيانات المُقدمة من العميل، ويتضمن تقنيات مثل تنظيف HTML . أما من عيوب برمجيات جانب الخادم فهي قابلية التوسع ، حيث تتم معالجة جانب الخادم لجميع المستخدمين على الخادم نفسه، بينما تتم معالجة جانب العميل على أجهزة الكمبيوتر الفردية لكل مستخدم.

اللغات المترجمة
بعض اللغات المفسرة الشائعة الاستخدام لتصميم النماذج التفاعلية في تطوير الويب هي PHP و Python و Ruby و Perl و JSP و Adobe ColdFusion ، وبعض اللغات المترجمة الشائعة الاستخدام هي Java و C# مع ASP.NET .
PHP
تُعد لغة PHP إحدى اللغات الشائعة جدًا المستخدمة في "برمجة" جانب الخادم، وهي من اللغات القليلة المصممة خصيصًا لبرمجة الويب . [ 6 ] [ 7 ]
لاستخدام PHP مع نموذج HTML، يتم تحديد عنوان URL لبرنامج PHP النصي في actionسمة <form>. ثم يصل ملف PHP المستهدف إلى البيانات التي يمررها النموذج من خلال متغيرات PHP $_POST، $_GETوذلك حسب قيمة السمة methodالمستخدمة في النموذج. إليك برنامج PHP نصي أساسي لمعالجة النماذج يعرض محتويات النموذج.الاسم الأولحقل الإدخال في الصفحة:
form.html
< ! DOCTYPE html > < html lang = " en " > <head> <title> النموذج < / title > </head> <body> < form action = " form_handler.php " > <p> <label> الاسم : < input name = " first_name " / > </label> </p> <p> < button type = " submit " > إرسال < / button > </p> </form> </body> </html>form_handler.php
<!DOCTYPE html> <?php // طلب قيمة المتغير الخارجي "first_name" وتصفيتها. $firstName = filter_input ( INPUT_GET , "first_name" , FILTER_SANITIZE_STRING ); ?> < html lang = "en" > < head > < title > الناتج </ title > </ head > < body > < p > <?php echo "Hello, { $firstName } !" ; /* طباعة القيمة */ ?> </ p > </ body > </ html >يستخدم نموذج الكود أعلاه دالة PHP لتنظيف مدخلات المستخدم قبل إدراجها في الصفحة. إن طباعة (عرض) مدخلات المستخدم في المتصفح دون التحقق منها أولاً أمر يجب تجنبه في معالجات النماذج الآمنة: إذا أدخل المستخدم كود JavaScript فيfilter_input()<script>alert(1)</script>الاسم الأولفي الحقل، سيقوم المتصفح بتنفيذ البرنامج النصي علىform_handler.phpتم تقديم هذه الميزة في PHP 5.2، حيث يمكن للمستخدمين الذين يستخدمون إصدارات PHP السابقة استخدام الدالة أو التعابير النمطية لتنظيف مدخلات المستخدم قبل التعامل معها.filter_input()htmlspecialchars()
لغة برمجة بيرل
تُعدّ لغة بيرل لغةً أخرى شائعة الاستخدام في تطوير مواقع الويب . وتُستخدم نصوص بيرل تقليديًا كتطبيقات واجهة البوابة العامة (CGI). في الواقع، تُعدّ بيرل طريقةً شائعةً لكتابة تطبيقات CGI لدرجة أن الخلط بينهما شائعٌ جدًا. يمكن كتابة تطبيقات CGI بلغات أخرى غير بيرل (يُعدّ التوافق مع لغات متعددة هدفًا أساسيًا في تصميم بروتوكول CGI)، وهناك طرق أخرى لجعل نصوص بيرل تتفاعل مع خادم الويب غير استخدام CGI (مثل FastCGI أو Plack أو mod_perl من Apache ).
كانت تطبيقات Perl CGI في الماضي طريقة شائعة جدًا لكتابة تطبيقات الويب . ومع ذلك، فإن العديد من شركات استضافة المواقع اليوم تدعم PHP فقط، وغالبًا ما يسعى مطورو تطبيقات الويب إلى تحقيق التوافق معها.
قد يبدو برنامج CGI حديث مكتوب بلغة Perl 5 باستخدام وحدة CGI بنموذج مشابه للنموذج أعلاه كما يلي:
form_handler.pl
#!/usr/bin/env perl use strict ; use CGI qw(:standard) ;my $name = param ( "first_name" ); print header ; print html ( body ( p ( "Hello, $name!" ), ), );نصوص تحويل النماذج إلى رسائل بريد إلكتروني
من أبسط أنواع البرامج النصية التي تعمل على الخادم وأكثرها شيوعًا، تلك التي ترسل محتوى النموذج المُرسَل عبر البريد الإلكتروني. مع ذلك، يُستغل هذا النوع من البرامج النصية بكثرة من قِبل مرسلي البريد العشوائي ، والعديد من البرامج النصية الشائعة لتحويل النماذج إلى بريد إلكتروني عُرضة للاختراق بغرض إرسال رسائل بريد عشوائي. كان برنامج "FormMail.pl" من تطوير Matt's Script Archive أحد أشهر هذه البرامج النصية . اليوم، لم يعد هذا البرنامج يُستخدم على نطاق واسع في التطويرات الجديدة نظرًا لقلة التحديثات، والمخاوف الأمنية، وصعوبة الإعداد.
أدوات إنشاء النماذج
تقدم بعض الشركات نماذج كخدمة استضافة . عادةً ما توفر هذه الشركات محررًا مرئيًا، وأدوات إعداد تقارير، وبنية تحتية لإنشاء النماذج واستضافتها، والتي يمكن تضمينها في صفحات الويب. [ 8 ] كما توفر شركات استضافة المواقع قوالب جاهزة لعملائها كخدمة إضافية. بينما تقدم خدمات استضافة نماذج أخرى نماذج اتصال مجانية يمكن للمستخدم تثبيتها على موقعه الإلكتروني عن طريق لصق رمز الخدمة في كود HTML الخاص بالموقع.
تاريخ
عندما قام تيم بيرنرز لي بتطوير لغة HTML في عام 1991 ونشرها لاحقًا في عام 1993 [ 9 ] [ 10 ] ، كانت تحتوي على 18 وسمًا. [ 10 ] لم يتم تضمين عنصر النموذج وحقول النموذج في هذه النسخة الأولى.
في الواقع، لم يتم اختراع "نموذج HTML" كما نعرفه في لحظة واحدة أو على يد شخص واحد. فقد ساهم العديد من الأشخاص والمنظمات والمتصفحات في تطوير نماذج HTML وجعل وسوم النماذج معيارًا في HTML 2.0. [ 11 ] [ 12 ]
في البداية، طُوِّرَت لغة HTML+ على يد ديف راجيت . وفي نفس الفترة تقريبًا، طُبِّقت نماذج HTML لأول مرة في متصفح فيولا . [ 13 ] لكن الدفعة الأكبر كانت من نصيب متصفح موزاييك . وتحديدًا، NCSA Mosaic for X 2.0، لأن النماذج لم تكن متوفرة في الإصدار الأول من موزاييك في أبريل 1993. [ 11 ]
مع إصدار Mosaic 2.0، أصبحت النماذج متاحة على نطاق واسع، وسرعان ما رغبت كل شركة في الحصول على نموذج اتصال خاص بها. خلال تلك الفترة، لم تكن وسوم النماذج وسوم HTML رسمية، لكن المتصفحات كانت تدعمها مع ذلك. وجاء التغيير لاحقًا في عام 1995 مع إصدار HTML 2.0، حيث أُضيفت وسوم FORM وINPUT وSELECT وTEXTAREA إلى لغة HTML. [ 12 ]
انظر أيضاً
مراجع
- ↑ "HTML/Elements/label" . w3.org wiki . 19 مايو 2023.
- ↑ ساتروم، براندون (نوفمبر 2011). "نماذج ويب أفضل باستخدام نماذج HTML5" . مجلة MSDN . مايكروسوفت . تم الاطلاع عليه بتاريخ 20 فبراير 2014 .
- ↑ "النماذج - HTML5" . w3.org . W3C . تم الاطلاع عليه بتاريخ 20 فبراير 2014 .
- ↑ "input type=color – color-well control" . w3.org . W3C . تم الاطلاع عليه بتاريخ 31 أكتوبر 2014 .
- تم اقتراح دعم وكيل المستخدم لإرسال نماذج HTML عبر البريد الإلكتروني ، باستخدام عنوان URL من نوع "mailto" كإجراء للنموذج، في القسم 5.6 من RFC 1867، خلال حقبة HTML 3.2. وقد طبقت متصفحات الويب المختلفة هذه الميزة إما عن طريق استدعاء برنامج بريد إلكتروني منفصل، باستخدامإمكانيات SMTP البدائية الخاصة بها، أو من خلال دمجها في برامج الإنترنت عبر تضمين عملاء بريد إلكتروني متكاملين . وعلى الرغم من عدم موثوقيتها في بعض الأحيان، فقد لاقت رواجًا لفترة وجيزة كوسيلة بسيطة لنقل بيانات النموذج دون الحاجة إلى خادم ويب أو نصوص CGI .
- ↑ "PHP: معالج النصوص التشعبية المسبق" .
- ↑ "موسوعة الويب" . مؤرشف من الأصل في 16 أغسطس 2022. تم الاطلاع عليه في 26 سبتمبر 2012 .
- ↑ غاروفالو، جوش. "مقدمة إلى النماذج الإلكترونية ومنشئي النماذج" . مدونة بليتزن .
- ↑ "تاريخ لغة HTML" . w3schools.in . W3schools . تم الاطلاع عليه بتاريخ 17 يونيو 2026 .
- 1 2 "لغة ترميز النص التشعبي (HTML)" . w3.org . W3C . تم الاطلاع عليه في 17 يونيو 2026 .
- 1 2 "قصة أولى النماذج الإلكترونية: من أجهزة طرفية إلى صناديق" . forms.app . forms.app . تم الاطلاع عليه بتاريخ 17 يونيو 2026 .
- 1 2 "لغة ترميز النص التشعبي - 2.0" . w3.org . W3C . تم الاطلاع عليه في 17 يونيو 2026 .
- ↑ "ViolaWWW" . webdesignmuseum.org . متحف تصميم المواقع الإلكترونية . تم الاطلاع عليه بتاريخ 17 فبراير 2022 .
روابط خارجية
- النماذج في مستندات HTML ، صفحة مواصفات W3C للنماذج في HTML 4.
- مواصفات نماذج HTML5
- ويكي بوكس: لغة ترميز النص التشعبي/النماذج
- جرب خصائص HTML.
- تقنيات واجهة المستخدم
- علامات HTML
- HTML
