يبدو حقل رقم الهاتف دون تحقق غير ضار، حتى لا تستطيع شركة الشحن الوصول إلى العميل والطرد بين يديها. وفي نموذج الطلب اليدوي تحديدًا، حيث ينسخ الموظف رقمًا من مكالمة أو من لقطة شاشة محادثة، يمرر حقل النص العادي الأخطاء المطبعية والأطوال الخاطئة والبادئات غير الصالحة في كل مرة.
النمط الفعلي الذي يجب التحقق منه
تتبع أرقام الجوال البنغلاديشية صيغة محددة وواضحة: أحد عشر رقمًا تبدأ بـ 01، يليها رقم واحد من 3 إلى 9 يحدد المشغل، ثم ثمانية أرقام أخرى، ويُعبَّر عنها بالتعبير النمطي ^01[3-9]d{8}$. وأي شيء خارج هذا الشكل ليس رقم جوال بنغلاديشيًا صالحًا، بلا نقاش.
يُفحص مرتين لسببين مختلفين
نتحقق من هذا النمط في مكانين، ويحل كل منهما مشكلة مختلفة:
- في المتصفح، فورًا. بمجرد أن ينتهي الموظف من الكتابة، تظهر رسالة خطأ بجانب الحقل إذا لم يطابق الرقم، وتختفي فور تصحيحه، فيُكتشف الخطأ قبل إرسال النموذج أصلًا.
- على الخادم، عند الإرسال. يُعاد الفحص نفسه في معالج إنشاء الطلب، فيرفض الطلب مباشرة إذا تم تجاوز الفحص الأول، سواء بتعطيل JavaScript أو بطلب مباشر. التحقق في المتصفح مجاملة؛ أما التحقق على الخادم فهو الضمان الحقيقي.
كما ضبطنا maxlength="11" وinputmode="numeric" على الحقل نفسه، ليعرض الهاتف لوحة الأرقام افتراضيًا ولا يقبل رقمًا ثانيًا عشر أصلًا: تفاصيل صغيرة تجعل الإدخال الصحيح هو الطريق الأسهل، بدلًا من أن يكون خطأً يلتقطه التحقق لاحقًا.
أهم الدروس
- التحقق الموجود في المتصفح فقط ليس تحققًا بل وسيلة راحة. الفحص على الخادم هو ما يحمي البيانات فعلًا.
- يجب أن يطابق نمط التحقق الصيغة الحقيقية التي يمثلها، لا قاعدة عامة من نوع «يبدو كرقم هاتف».
- خصائص الإدخال مثل
inputmodeوmaxlengthتمنع فئات كاملة من الأخطاء قبل أن يحتاج منطق التحقق إلى العمل أصلًا.
اقرأ أيضًا: اختيار الشحن المجاني تلقائيًا عند حد السلة، لماذا لم تكن رسائل الطلبات تصل إلى Gmail.
هل تواجه قيدًا مشابهًا في لوحة إدارة WooCommerce أو WordPress لديك؟ لنتحدث؛ فـ ArtinTech Solution تبني هذا النوع تحديدًا من أدوات المتاجر المخصصة.