مقدمة في التحقق من صحة HTML5
لا يمكن تخيل المواقع التفاعلية والتطبيقات دون استمارات تتيح لنا ذلك تواصل مع مستخدمينا, و ل الحصول على البيانات نحن بحاجة لتأمين المعاملات السلسة معهم. نحن بحاجة إدخال المستخدم صالح, ومع ذلك نحن بحاجة إلى الحصول عليها بطريقة ذلك لا تحبط مستخدمينا كثيرا.
بينما يمكننا تحسين قابلية استخدام النماذج الخاصة بنا من خلال أنماط تصميم UX المختارة بذكاء ، فإن HTML5 لديه أيضًا آلية أصلية للتحقق من القيود التي تسمح لنا القبض على أخطاء الإدخال الحق في الواجهة الأمامية.
في هذا المنشور ، سنركز على التحقق من القيود التي يوفرها المستعرض, وننظر في كيف يمكن للمطورين الواجهة الأمامية تأمين إدخال مستخدم صالح باستخدام HTML5.
لماذا نحتاج إلى التحقق من صحة الإدخال الأمامي
التحقق من صحة المدخلات لديه هدفين رئيسيين. يجب أن يكون المحتوى الذي نحصل عليه:
1. مفيدة
نحن نحتاج بيانات قابلة للاستخدام يمكننا العمل معها. نحن بحاجة إلى جعل الناس يدخلون بيانات واقعية في الشكل الصحيح. على سبيل المثال ، لم يولد أي شخص على قيد الحياة اليوم منذ 200 عام. قد يبدو الحصول على بيانات كهذه أمرًا مضحكًا في البداية ، ولكنه على المدى الطويل أمر مزعج ، ويملأ قاعدة بياناتنا ببيانات عديمة الفائدة.
2. تأمين
عند الإشارة إلى الأمن ، هذا يعني أننا بحاجة إلى منع حقن المحتوى الضار - سواء عن قصد أو عن طريق الصدفة.
يمكن تحقيق الفائدة (الحصول على بيانات معقولة) فقط على جانب العميل, فريق الخلفية لا يمكن أن يساعد كثيرا في هذا. لتحقيق الأمان, يحتاج مطورو الواجهة الأمامية والخلفية للعمل معًا.
إذا قام مطورو الواجهة الأمامية بالتحقق من صحة الإدخال من جانب العميل ، سيكون على فريق الخلفية التعامل مع نقاط الضعف أقل بكثير. القرصنة (موقع) يستتبع في كثير من الأحيان تقديم بيانات اضافية, أو البيانات في تنسيق خاطئ. يمكن للمطورين محاربة الثغرات الأمنية مثل هذه ، والقتال بنجاح من الواجهة الأمامية.
على سبيل المثال ، يوصي دليل حماية PHP هذا بالتحقق من كل ما نستطيع من جانب العميل. يشددون على أهمية التحقق من صحة إدخال الواجهة الأمامية عن طريق إعطاء العديد من الأمثلة ، مثل:
"يعمل التحقق من صحة الإدخال بشكل أفضل مع القيم المقيدة للغاية ، على سبيل المثال عندما يكون شيء ما عددًا صحيحًا أو سلسلة أبجدية رقمية أو عنوان URL HTTP."
في التحقق من صحة الإدخال الأمامي ، مهمتنا هي فرض قيود معقولة على إدخال المستخدم. توفر ميزة التحقق من صحة HTML5 الخاصة بنا وسيلة للقيام بذلك.
التحقق من صحة HTML5
قبل HTML5 ، كان مطورو الواجهة الأمامية مقتصرين على التحقق من صحة إدخال المستخدم باستخدام JavaScript, التي كانت عملية شاقة وعرضة للخطأ. لتحسين التحقق من صحة النموذج من جانب العميل ، قدم HTML5 التحقق من صحة القيد الخوارزمية التي تعمل في المتصفحات الحديثة ، و يتحقق من صحة المدخلات المقدمة.
لإجراء التقييم ، تستخدم الخوارزمية سمات التحقق من صحة عناصر الإدخال, مثل ,
, و
. إذا كنت تريد معرفة كيف يحدث التحقق من صحة القيد خطوة بخطوة في المتصفح ، راجع مستند WhatWG هذا.
بفضل ميزة التحقق من صحة HTML5 ، يمكننا تنفيذ الكل مهام التحقق من صحة المدخلات القياسية على جانب العميل بدون جافا سكريبت ، فقط مع HTML5.
لأداء مهام أكثر تعقيدًا تتعلق بالتحقق من الصحة ، يوفر لنا HTML5 التحقق من صحة جافا سكريبت API يمكننا استخدام لإعداد البرامج النصية التحقق من الصحة المخصصة لدينا.
التحقق من صحة مع أنواع المدخلات الدلالية
قدم HTML5 أنواع المدخلات الدلالية هذا - بالإضافة إلى الإشارة إلى معنى العنصر الخاص بوكلاء المستخدم - يمكن استخدامه أيضًا التحقق من صحة إدخال المستخدم عن طريق قصر المستخدمين على تنسيق إدخال معين.
إلى جانب أنواع المدخلات التي كانت موجودة بالفعل قبل HTML5 (نص
, كلمه السر
, خضع
, إعادة تعيين
, راديو
, مربع
, زر
, مخفي
) ، يمكننا أيضا استخدام ما يلي أنواع مدخلات HTML5 الدلالية: البريد الإلكتروني
,الهاتف
,رابط
,رقم
,زمن
,تاريخ
,التاريخ والوقت
,التاريخ والوقت المحلي
, شهر
,أسبوع
, نطاق
, بحث
,اللون
.
يمكننا أن نستخدم بأمان أنواع مدخلات HTML5 مع المتصفحات القديمة ، لأنها سوف تتصرف ك الحقل في المتصفحات التي لا تدعمها.
دعونا نرى ما يحدث عندما يدخل المستخدم نوع الإدخال غير صحيح. لنفترض أننا أنشأنا حقل إدخال بريد إلكتروني بالشفرة التالية:
عندما يكتب المستخدم سلسلة لا تستخدم تنسيق بريد إلكتروني ، تكون خوارزمية التحقق من صحة القيد لا يقدم النموذج, و إرجاع رسالة خطأ:
تنطبق نفس القاعدة على أنواع المدخلات الأخرى أيضًا ، على سبيل المثال اكتب = "URL"
يمكن للمستخدمين فقط إرسال إدخال يتبع تنسيق URL (يبدأ ببروتوكول ، مثل HTTP: //
أو بروتوكول نقل الملفات: //
).
بعض أنواع المدخلات تستخدم التصميم الذي لا يسمح للمستخدمين بإدخال تنسيق إدخال خاطئ, فمثلا اللون
و نطاق
.
إذا استخدمنا اللون
نوع الإدخال يكون المستخدم مقيدًا إما باختيار لون من منتقي الألوان أو البقاء باللون الأسود الافتراضي. حقل الإدخال هو مقيدة حسب التصميم, لذلك لا يترك فرصة كبيرة لخطأ المستخدم.
عندما يكون ذلك مناسبًا ، يجدر التفكير في استخدام علامة HTML التي تعمل بشكل مشابه لأنواع الإدخال المقيدة حسب التصميم ؛ يتيح للمستخدمين الاختيار من قائمة منسدلة.
استخدم سمات التحقق من HTML5
إن استخدام أنواع المدخلات الدلالية يحدد بعض القيود على ما يسمح للمستخدمين بإرساله ، ولكن في كثير من الحالات نريد أن نذهب إلى أبعد من ذلك. هذا هو عندما يكون سمات التحقق من الصحة من العلامة يمكن أن تساعدنا.
تنتمي السمات المتعلقة بالتحقق من الصحة إلى أنواع معينة من المدخلات (لا يمكن استخدامها على الكل أنواع) التي تفرض عليها المزيد من القيود.
1. مطلوب
للحصول على مدخلات صالحة بكل الوسائل
ال مطلوب
السمة هي أكثر سمات التحقق من صحة HTML شهرة. انه السمة المنطقية مما يعني ذلك لا يأخذ أي قيمة, لدينا فقط ببساطة لوضعها داخل العلامة إذا أردنا استخدامها:
إذا نسي المستخدم إدخال قيمة في حقل الإدخال المطلوب ، في المتصفح إرجاع رسالة خطأ أن يحذرهم لملء الحقل ، وأنهم لا يمكن تقديم النموذج حتى قاموا بتوفير مدخلات صالحة. لهذا السبب من المهم أن تكون دائمًا بمناسبة بصريا الحقول المطلوبة للمستخدمين.
ال مطلوب
السمة يمكن أن يكون تستخدم جنبا إلى جنب مع أنواع المدخلات التالية: نص
, بحث
, رابط
, الهاتف
, البريد الإلكتروني
, كلمه السر
, تاريخ
, التاريخ والوقت
, التاريخ والوقت المحلي
, شهر
, أسبوع
,زمن
, رقم
, مربع
, راديو
, ملف
, زائد مع و
علامات HTML.
2. دقيقة
, ماكس
و خطوة
للتحقق من صحة الرقم
ال دقيقة
, ماكس
و خطوة
سمات تمكننا من وضع قيود على حقول إدخال الرقم. يمكن استخدامها جنبا إلى جنب مع نطاق
, رقم
, تاريخ
, شهر
, أسبوع
, التاريخ والوقت
, التاريخ والوقت المحلي
, و زمن
أنواع المدخلات.
ال دقيقة
و ماكس
سمات توفر وسيلة رائعة بسهولة استبعاد البيانات غير المعقولة. على سبيل المثال ، المثال التالي يفرض على المستخدمين إرسال سن يتراوح بين 18 و 120 عامًا.
عندما تصطدم خوارزمية التحقق من صحة القيد في إدخال مستخدم أصغر من دقيقة
, أو أكبر من ماكس
قيمة ، ويمنعها من الوصول إلى الواجهة الخلفية ، وإرجاع رسالة خطأ.
ال خطوة
صفة، عزا يحدد الفاصل الزمني الرقمي بين القيم القانونية لحقل إدخال رقمي. على سبيل المثال ، إذا أردنا أن يختار المستخدمون فقط من سنوات كبيسة ، فيمكننا إضافة خطوة = "4"
السمة إلى الحقل. في المثال أدناه اعتدت على رقم
نوع الإدخال ، كما لا يوجد نوع = "السنة"
في HTML5.
مع القيود المحددة مسبقًا ، يمكن للمستخدمين الاختيار فقط من سنوات كبيسة بين عامي 1972 و 2016 إذا كانوا يستخدمون السهم العلوي الصغير الذي يأتي مع رقم
نوع الإدخال. يمكنهم أيضًا كتابة قيمة يدويًا في حقل الإدخال ، ولكن في حالة عدم وفائها بالقيود ، فسوف يعرض المتصفح رسالة خطأ.
3. الحد الاقصى للطول
للتحقق من طول النص
ال الحد الاقصى للطول
السمة تجعل من الممكن ل تعيين الحد الأقصى لطول الأحرف لحقول المدخلات النصية. ويمكن استخدامه جنبا إلى جنب مع نص
, بحث
, رابط
, الهاتف
, البريد الإلكتروني
و كلمه السر
أنواع المدخلات ، ومع علامة HTML.
ال الحد الاقصى للطول
يمكن أن تكون السمة حلاً ممتازًا لحقول رقم الهاتف التي لا يمكن أن تحتوي على أكثر من عدد معين من الأحرف ، أو لنماذج جهات الاتصال حيث لا نريد أن يكتب المستخدمون أكثر من طول معين.
يعرض مقتطف الشفرة أدناه مثالًا للأخير ، فهو يقصر رسائل المستخدم على 500 حرف.
ال الحد الاقصى للطول
صفة، عزا لا يُرجع رسالة خطأ, لكن المتصفح ببساطة لا يسمح للمستخدمين بكتابة أكثر من رقم الحرف المحدد. لهذا السبب من الأهمية بمكان أن إبلاغ المستخدمين حول القيد, وإلا فلن يفهموا سبب عدم قدرتهم على الكتابة.
4. نمط
للتحقق من صحة Regex
ال نمط
السمة تسمح لنا ل استخدام التعبيرات العادية في عملية التحقق من صحة المدخلات لدينا. والتعبير العادي هو مجموعة محددة مسبقا من الشخصيات التي تشكل نمط معين. يمكننا استخدامه إما للبحث في السلاسل التي تتبع النموذج ، أو لفرض تنسيق معين يحدده النموذج.
مع ال نمط
السمة التي يمكننا القيام بها هي الأخيرة - تقييد المستخدمين على إرسال مدخلاتهم بتنسيق يطابق التعبير المنتظم المعطى.
ال نمط
تحتوي السمة على العديد من حالات الاستخدام ، ولكنها قد تكون مفيدة بشكل خاص عندما نريد التحقق من صحة حقل كلمة المرور.
المثال التالي يتطلب من المستخدمين إدخال كلمة مرور بطول 8 أحرف على الأقل ، ويحتوي على حرف واحد ورقم واحد على الأقل (مصدر regex الذي استخدمته).
بعض الأشياء الأخرى
في هذه المقالة ، ألقينا نظرة على كيفية الاستفادة من التحقق من صحة النموذج المقدم من المستعرض المقدمة من خوارزمية التحقق من القيد الأصلي في HTML5. لإنشاء برامج نصية مخصصة للتحقق من الصحة ، نحتاج إلى استخدام API Constraint Validation الذي يمكن أن يكون الخطوة التالية في تحسين مهارات التحقق من صحة النموذج.
يمكن الوصول إلى نماذج HTML5 بواسطة التقنيات المساعدة ، لذلك لا يلزم بالضرورة استخدام الأغنية المطلوبة
سمة ARIA لتحديد حقول الإدخال المطلوبة لقارئات الشاشة. ومع ذلك ، قد يكون من المفيد إضافة دعم إمكانية الوصول للمتصفحات القديمة. من الممكن ايضا إلغاء الاشتراك من قيد القيد بإضافة novalidate
السمة المنطقية لل جزء.