Medan nombor telefon tanpa pengesahan kelihatan tidak berbahaya sehingga kurier tidak dapat menghubungi pelanggan yang menunggu bungkusan. Terutamanya pada borang pesanan manual, apabila kakitangan menyalin nombor daripada panggilan telefon atau tangkapan skrin sembang, medan teks biasa membenarkan salah taip, panjang yang salah dan awalan tidak sah setiap kali.
Corak sebenar yang perlu disahkan
Nombor telefon bimbit Bangladesh mengikut format khusus yang jelas: sebelas digit, bermula dengan 01, diikuti satu digit dari 3 hingga 9 yang mengenal pasti operator, kemudian lapan digit lagi, dinyatakan sebagai ungkapan nalar ^01[3-9]d{8}$. Apa sahaja di luar bentuk itu bukan nombor telefon bimbit Bangladesh yang sah, noktah.
Disemak dua kali, atas dua sebab berbeza
Kami mengesahkan corak itu di dua tempat, masing-masing menyelesaikan masalah berbeza:
- Di pelayar, serta-merta. Sebaik kakitangan selesai menaip, mesej ralat muncul di sebelah medan jika nombor tidak sepadan, dan hilang sebaik ia dibetulkan: kesilapan dikesan sebelum borang dihantar.
- Di pelayan, semasa penghantaran. Semakan yang sama dijalankan semula dalam pengendali penciptaan pesanan, menolak permintaan terus jika semakan pertama dipintas, sama ada melalui JavaScript yang dinyahdayakan atau permintaan terus. Pengesahan di pelayar ialah budi bahasa; pengesahan di pelayan ialah jaminan sebenar.
Kami juga menetapkan maxlength="11" dan inputmode="numeric" pada medan itu sendiri, supaya papan kekunci telefon memaparkan susun atur nombor secara lalai dan secara fizikal tidak boleh menerima digit kedua belas: butiran kecil yang menjadikan input yang betul sebagai jalan paling mudah, bukan sesuatu yang perlu ditangkap pengesahan selepas itu.
Pengajaran utama
- Pengesahan yang hanya wujud di pelayar bukan pengesahan, tetapi kemudahan. Semakan di pelayan yang benar-benar melindungi data.
- Corak pengesahan patut sepadan dengan format dunia sebenar yang diwakilinya, bukan peraturan umum “kelihatan seperti nombor telefon”.
- Atribut input seperti
inputmodedanmaxlengthmencegah jenis kesilapan tertentu sebelum logik pengesahan perlu dijalankan.
Bacaan berkaitan: memilih penghantaran percuma secara automatik pada had troli, mengapa e-mel pesanan tidak sampai ke Gmail.
Menghadapi had yang serupa dalam panel WooCommerce atau WordPress anda sendiri? Mari berbincang: ArtinTech Solution membina alat kedai tersuai seperti ini.