التحقق من الصحة و Methods


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


يعد التحقق من الصحة أحد العوامل المهمة في عملية البرنامج. أستطيع حتى أن أقول إنها قضية مهمة تأتي أولاً ، اعتمادًا على الموقف. في المعاملات التي تتم دون التحقق من البيانات ، قد يواجه النظام مشكلة خطيرة بالإضافة إلى التفكك ، أي الاتساق. هذا هو سبب أهمية التحقق من صحة البيانات. بالإضافة إلى ذلك ، نظرًا لأن عملية التحقق من صحة البيانات ستوجه العمليات عندما تكون البيانات غير صحيحة ، فإنها تقوم بالمهمة في البداية دون الدخول إلى جزء منطق الأعمال.

يتم التحقق من صحة البيانات على مرحلتين على مواقع الويب ، التحقق من جانب العميل والتحقق من جانب الخادم.


المصادقة من جانب العميل

المصادقة من جانب العميل ، كما يوحي الاسم ، تغطي طرق المصادقة على المتصفح. للتحقق من جانب العميل ، من الواضح أن عملك أسهل قليلاً. لهذا ، يمكنك استخدام كل من طرق التحقق الخاصة بـ HTML5 ومكتبات js الإضافية.

التحقق من الصحة بأستخدام  HTML5

في الواقع ، لا تحتاج إلى فعل أي شيء لهذه العملية. بالطبع ، إذا قمت بملء نوع المدخلات وقيمها مثل max ، min ، maxlength ، minlength. بمعنى آخر ، إذا وصفت أحد المدخلات بشكل صحيح ، فسيقوم متصفحك بإعطاء القواعد لك. بالطبع ، هناك بعض الإضافات. إذا كان يجب أن يكون الحقل ممتلئًا ، فستحتاج إلى استخدام السمة المطلوبة. لمزيد من التفاصيل ، يمكنك الرجوع إلى https://www.w3schools.com/tags/tag_input.asp.

أيضًا ، في بعض الأحيان لا تكفي الأشياء الكلاسيكية ، مثل رقم هوية الشخصية. إنه نص مكون من 11 رقمًا ، وألفت انتباهكم ، وليس رقمًا ، بل نص يتكون من أرقام. إذا قمت بتقديمه كرقم ، فمن المحتمل أن يضع مؤشرًا على يمين الإدخال بحيث يمكنك زيادته بواحد ، لا نريد ذلك. اذا ماذا يجب ان نفعل؟ بالطبع يجب أن نستخدم النمط ، فمن الممكن إعطاء نمط لسمة النمط مع regex. لذلك يمكنك أيضًا إنشاء قواعد مخصصة.

التحقق من الصحة باستخدام JS

هذه هي طريقتي المفضلة. لأنه بهذه الطريقة يمكن إعطاء رسائل لذيذة. قد تحتاج إلى استخدام هذه الطريقة المفتوحة للتخصيص الشديد. في بعض الأحيان يمكن أن يكون مثل هذا ؛ إما إدخال بطاقة هوية الشخصية أو جواز سفر! كيف يمكنك التحقق من صحة مع HTML5؟

أوصي بالفعل باستخدام مكتبة تحقق جاهزة لهذه العملية. سيوفر لك ذلك من كتابة الكثير من التعليمات البرمجية (نفضل استخدام vanilla.js وركيوب).


المصادقة من جانب الخادم

يتم استخدام التحقق من جانب الخادم للتأكد من أن التحقق من الصحة يعمل إذا تم إيقاف تشغيل آلية مصادقة العميل (عن غير قصد أو عن عمد). من الممكن بشكل عام العثور على مكتبات وفقًا للبنية التحتية المستخدمة. يجب التحقق من صحة البيانات قبل الدخول إلى طبقة المنطق. إذا فشلت المصادقة ، فارجع إلى المستخدم أو تابع القيم الافتراضية

تقنيات التحقق من الصحة

هناك نوعان من التحقق. الأول هو أن تخضع البيانات لأكثر من قاعدة واحدة (التحقق الكلاسيكي) والثاني هو العثور على القاعدة الأولى غير الصحيحة في دفق (التحقق من الصحة بطلاقة). في القواعد المستندة إلى العميل ، عادة ما يكون من المنطقي ترك عبء العمل للمتصفح من خلال إجراء التحقق الكلاسيكي. يجب عرض جميع الأخطاء. ومع ذلك ، في التحقق من جانب الخادم ، يعد التحقق من الصحة بطلاقة خيارا منطقيا. لأنه عندما يكتشف الخادم الخطأ الأول ، يجب أن يعود إلى المستخدم ولا يتعب المعالج المركزي بعد الآن.

مثال;

if (len(attributes.tckimlik) neq 11) {
arrayAppend(errors,"ID No. must be 11 Digits");
}
if (reFind("^[0-9]$", attributes.tckimlik) eq 0) {
arrayAppend(errors, "National Identity Number should only consist of numbers!");
}

لقد وجدنا الأخطاء مع التحقق الكلاسيكي أعلاه. كما ترى ، يتم حساب جميع الأخطاء ونقلها إلى دليل الأخطاء ويتم إرجاع المستخدم. هذا الأسلوب يستهلك المزيد من وحدة المعالجة المركزية. خاصة إذا لم يكن معرف tc الخاص بك مكونًا من 11 رقمًا ، إذا كنت بحاجة إلى الاستجواب ومعرفة ما إذا كان هناك هذا السجل

if (len(attributes.tckimlik) neq 11) {
errors = "ID No. must be 11 Digits";
} else if (reFind("^[0-9]+$", attributes.tckimlik) eq 0) {
errors = "National Identity Number should only consist of numbers!";
}

هنا الأخطاء ليست سلسلة نصية ولكنها متغير ، لذلك عندما يتم العثور على الخطأ الأول ، فإن ifs لن تعمل وسيرجع المستخدم الخطأ الأول.

يمكنك حل عمليات التحقق المعقدة من جانب المتصفح باستخدام مكتبة  https://validatejs.org/. ستفهم القواعد بشكل أفضل عندما ترى الأمثلة على الموقع. لا توجد مكتبة تحقق مستقرة لـ Coldfusion حتى الآن ، لذا سيتعين عليك كتابتها يدويًا. ومع ذلك ، إذا كتبت رموز التحقق الخاصة بك وظيفية ، فيمكنك على الأقل العمل وفقًا لنمط الأوامر.

if (validator.notValid(rangeLenValidator, attributes.tckimlik, 11, 11)) {
errors = "ID No. must be 11 Digits";
} else if (validator.notValid(regexValidator, attributes.tckimlik, "^[0-9]+$")) {
errors = "National Identity Number should only consist of numbers!";
}

وبالتالي ، من الممكن إعادة استخدام المدققين وفقًا للقواعد التي تواجهها..


?

?