Veb-ilovalarni yaratishda xavfsizlikka jiddiy yondashish kerak, ayniqsa foydalanuvchilardan ma'lumotlarni olish bilan shug'ullanish kerak bo'lganda.

Umumiy xavfsizlik qoidasi hech kimga ishonmaslikdir, shuning uchun siz foydalanuvchilarning har doim shakllarga to'g'ri qiymatlarni kiritishiga ishona olmaysiz. Misol uchun, ushbu maydonga to'g'ri elektron pochta manzilini kiritish o'rniga, foydalanuvchi noto'g'ri manzilni yoki hatto ba'zi zararli ma'lumotlarni kiritishi mumkin.

Foydalanuvchi ma'lumotlarini tekshirish haqida gap ketganda, u mijoz tomonidan (veb-brauzerda) yoki server tomonida amalga oshirilishi mumkin.

Ilgari mijoz tomonidan tekshirish faqat JavaScript yordamida amalga oshirilishi mumkin edi. Ammo hamma narsa o'zgardi (yoki deyarli o'zgardi), chunki HTML5 yordamida tekshirishni JavaScript-da murakkab tekshirish skriptlarini yozishga hojat qoldirmasdan brauzerda amalga oshirish mumkin.

HTML5 yordamida shaklni tekshirish

HTML5 quyidagi teg atributlariga asoslangan juda mustahkam mexanizmni taqdim etadi: turi, naqsh va talab. Ushbu yangi atributlar yordamida siz ma'lumotlarni tekshirish funksiyalarining bir qismini brauzerga yuklashingiz mumkin.

Shaklni tekshirishda qanday yordam berishini tushunish uchun ushbu atributlarni ko'rib chiqaylik.

tip atributi

Bu atribut ma'lumotlarni qayta ishlash uchun qaysi kiritish maydonini ko'rsatish kerakligini aytadi, masalan, tanish maydon kabi

Ba'zi kiritish maydonlari qo'shimcha kod yozishni talab qilmasdan allaqachon standart tekshirish usullarini taqdim etadi. Masalan, kiritilgan qiymat haqiqiy elektron pochta manzili shabloniga mos kelishini tekshirish uchun maydonni tekshiradi. Agar maydonga noto'g'ri belgi kiritilgan bo'lsa, qiymat tuzatilmaguncha shaklni yuborib bo'lmaydi.

Quyidagi demoda elektron pochta maydoni qiymatlari bilan o'ynab ko'ring.

Shuningdek, raqamlar, URL manzillar va telefon raqamlarini tekshirish uchun kabi standart maydon turlari ham mavjud.

Eslatma: Telefon raqamlaridagi raqamlar soni va formatlardagi farqlar tufayli telefon raqamlari formatlari mamlakatdan mamlakatga farq qiladi. Natijada, spetsifikatsiya telefon raqamlarini tekshirish algoritmini aniqlamaydi, shuning uchun yozish paytida bu xususiyat brauzerlar tomonidan yomon qo'llab-quvvatlanadi.

Yaxshiyamki, telefon raqamini tekshirish naqsh atributi yordamida amalga oshirilishi mumkin, bu argument sifatida muntazam ifodani oladi, biz buni keyingi ko'rib chiqamiz.

naqsh atributi

Naqsh atributi, ehtimol, ko'plab front-end ishlab chiqaruvchilarni xursandchilik bilan sakrashga majbur qiladi. Ushbu atribut maydonga kiritilgan ma'lumotlarning to'g'riligini tekshirish uchun ishlatiladigan muntazam ifodani (JavaScript muntazam ifoda formatiga o'xshash) qabul qiladi.

Muntazam iboralar matnni tahlil qilish va boshqarish uchun ishlatiladigan tildir. Ular ko'pincha murakkab topish va almashtirish operatsiyalari uchun, shuningdek kiritilgan ma'lumotlarning to'g'riligini tekshirish uchun ishlatiladi.

Bugungi kunda muntazam iboralar eng mashhur dasturlash tillarida, shuningdek, ko'plab skript tillarida, muharrirlarda, ilovalarda, ma'lumotlar bazalarida va buyruq qatori yordamchi dasturlarida mavjud.

Muntazam ifodalar (RegEX) alohida belgilar, so'zlar yoki belgilar naqshlari kabi matn qatorini moslashtirish uchun kuchli, qisqa va moslashuvchan vositadir.

Oddiy ifodani naqsh atributining qiymati sifatida o'tkazish orqali siz berilgan kiritish maydoni uchun qanday qiymatlar maqbulligini belgilashingiz, shuningdek, foydalanuvchini xatolar haqida xabardor qilishingiz mumkin.

Keling, kirish maydonlarining qiymatini tekshirish uchun muntazam ifodalardan foydalanishning bir nechta misollarini ko'rib chiqaylik.

Telefon raqamlari

Yuqorida aytib o'tilganidek, turli mamlakatlardagi telefon raqamlari formatidagi nomuvofiqliklar tufayli tel maydoni turi brauzerlar tomonidan to'liq qo'llab-quvvatlanmaydi.

Misol uchun, ba'zi mamlakatlarda telefon raqamlari formati xxxx-xxx-xxxx va telefon raqamining o'zi quyidagicha bo'ladi: 0803-555-8205.

Ushbu naqsh mos keladigan muntazam ifoda: ^\d(4)-\d(3)-\d(4)$ . Kodda buni quyidagicha yozish mumkin:

Telefon raqami:

Alfanumerik qiymatlar Atribut talab qilinadi

Bu mantiqiy atribut bo‘lib, shaklni yuborish uchun berilgan maydon qiymati to‘ldirilishi kerakligini ko‘rsatish uchun ishlatiladi. Ushbu atributni maydonga qo'shsangiz, brauzer shaklni yuborishdan oldin foydalanuvchidan ushbu maydonni to'ldirishni talab qiladi.

Bu bizni JavaScript yordamida maydonni tekshirishni amalga oshirishdan qutqaradi, bu esa ishlab chiquvchilarga biroz vaqtni tejash imkonini beradi.

Masalan: yoki (XHTML muvofiqligi uchun)

Yuqorida ko'rgan barcha demolar kerakli atributdan foydalanadi, shuning uchun siz hech qanday maydonlarni to'ldirmasdan shaklni yuborishga urinib ko'rishingiz mumkin.

Xulosa

Shaklni tekshirish uchun brauzerni qo'llab-quvvatlash juda yaxshi va eski brauzerlar uchun siz polifilllardan foydalanishingiz mumkin.

Shuni ta'kidlash kerakki, faqat brauzer tomonidan tekshirishga tayanish xavflidir, chunki bu tekshiruvlarni tajovuzkorlar yoki botlar osongina chetlab o'tishlari mumkin.

Hamma brauzerlar HTML5-ni qo'llab-quvvatlamaydi va skriptingizga yuborilgan barcha ma'lumotlar formangizdan kelmaydi. Bu shuni anglatadiki, foydalanuvchidan ma'lumotlarni qabul qilishdan oldin uning to'g'riligini server tomonida tekshirish kerak.

Salom bolalar, umid qilamanki, ishlar yaxshi ketmoqda, bugun biz sizlar bilan juda foydali darslikni tushuntiramiz. Bugungi darsimizda angularJS va PHP dan foydalangan holda oddiy aloqa formasini yaratamiz.

Kontakt shakli har bir veb-saytda mavjud bo'lgan standart veb-sahifadir. Bu saytga tashrif buyuruvchilarga ushbu veb-saytni saqlash uchun mas'ul bo'lgan sayt egalari yoki xizmat ko'rsatuvchi provayderlar bilan bog'lanish imkonini beradi. Shunday qilib, biz veb-saytlar, o'quvchilar va/yoki foydalanuvchilardan xabarlarni qabul qilish uchun Angularjs va php-dan foydalangan holda oddiy aloqa formasini yaratmaslik kerak deb o'yladik.

Biz frontend uchun Angularjs va server tomonida PHP dan foydalanamiz. Biz burchak shaklidan ma'lumotlarni olib, sayt administratoriga elektron pochta orqali yuboradigan php kodini yozamiz. Ilova veb-katalogida “contact-form” papkasini yarating va HTML sahifa dizayni namunasini yarating - index.html. Endi quyidagi kodni index.html fayliga nusxa ko'chiring va joylashtiring.

Namoyish - Angularjs va PHP-dan foydalangan holda oddiy aloqa formasi angularjs va PHP-dan foydalangan holda aloqa formasi Ismingiz Email Xabar Yuborish

Elektron pochta yuborish uchun PHP kodi

contact.php sahifasini yarating va quyidagi kodni nusxa ko'chiring. Quyida burchak shaklidan ma'lumotlarni oladigan va ko'rsatilgan elektron pochta manziliga elektron pochta orqali yuboradigan PHP kodi.

< ?php $post_data = file_get_contents("php://input"); $data = json_decode($post_data); //Just to display the form values echo "Name: " . $data->ism; echo "Elektron pochta:" . $data->elektron pochta; echo "Xabar:" . $data->xabar; // elektron pochta xabarini yubordi $to = $data->email; $subject = "Angularjs aloqa formasini sinab ko'rish uchun test xati sayti"; $xabar = $ma'lumotlar->xabar; $headers = "Kimdan: " . $data->name .. "\r\n" .. "\r\n" . "X-Mailer: PHP/" . phpversion(); //Pochta manziliga xat yuborish uchun PHP pochta funksiyasi ($to, $subject, $message, $headers); ?>

Ko'rsatmalar: Mana 49 ta raqamdan iborat jadval - 25 ta kichik va 24 ta katta bosma. Kichik bosmada 1 dan 25 gacha o'sish tartibida, katta bosmada esa 24 dan 1 gacha bo'lgan raqamlarni kamayish tartibida qidirishingiz kerak. Buni navbatma-navbat bajarish kerak: 1 - kichik bosma, 24 - katta bosma, 2 - kichik bosma, 23 - katta bosma va boshqalar. Raqamni topganingizda, uni yonidagi harf bilan birga test varag'iga yozing.

Vazifani bajarish vaqti - 5 daqiqa.

7

4-dyuym

15-v

8 soat

11-k

1-g

25

14-sh

18-l

21-f

15-z

3

19-f

17-z

7-f

2

11

10-s

23

8

10-a

17-b

14-bet

6-r

20-bet

13:00

23-sh

5-y

9-f

3-l

22-b

1-chi

16-c

6-d

13-n

2

4-ts

22-0

20-a

12 lar

19-z

24

24-g

18-s

12-t

9-k

16-n

21-k

5-o

Nazorat shakli:

Katta o'lcham

Natijalar: . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Natijalarni baholash (diqqatni taqsimlash va almashtirish):

Metodologiya "Geometrik figuralarni ko'paytirish" (o'rta va katta o'smirlik) Ko'rsatmalar. 10 soniya ichida sizdan 10-kvadratga yozilgan raqamlarni diqqat bilan tekshirishingiz so'raladi... “Maqollardagi xatoni toping” usuli Ko'rsatmalar: Maqollardagi xatoni toping. Vazifani bajarish vaqti 3 minut. Shaklda... “Operativ vizual xotirani baholash” metodikasi Bolaning operativ vizual xotirasi va uning ko‘rsatkichlarini quyidagi... yordamida aniqlash mumkin.

Fikr qo'shing

Majburiy Boshqa nom tanlang

Majburiy Iltimos, to'g'ri elektron pochta manzilini kiriting

Afgʻoniston Albaniya Jazoir Argentina Armaniston Avstraliya Avstriya Ozarbayjon Bahrayn Bangladesh Belarusiya Belgiya Beliz Bermud Bolivar respublikasi Venesuela Boliviya Bosniya va Gersegovina Braziliya Bruney Darussalam Bolgariya Kambodja Kanada Karib dengizi Chili Kolumbiya Kosta-Rika Xorvatiya Chexiya Fransiya Gruziya Misr Dominikan Eku-Finlandiya Eku. Germaniya Gretsiya Grenlandiya Gvatemala Gonduras Gonkong S.A.R. Vengriya Islandiya Hindiston Indoneziya Eron Iroq Irlandiya Islom Respublikasi Pokiston Isroil Italiya Yamayka Yaponiya Iordaniya Qozogʻiston Keniya Koreya Quvayt Qirgʻiziston Lao P.D.R. Latviya Livan Liviya Lixtenshteyn Litva Lyuksemburg Makao S.A.R. Makedoniya (FYROM) Malayziya Maldiv orollari Malta Meksika Mongoliya Chernogoriya Marokash Nepal Niderlandiya Yangi Zelandiya Nikaragua Nigeriya Norvegiya Ummon Panama Paragvay Xitoy Xalq Respublikasi Peru Filippin Polsha Portugaliya Monako knyazligi Puerto-Riko Qatar Filippin Respublikasi Saudiya Arabistoni Ruminiya Rossiya va Serbiya Sobiq) Singapur Slovakiya Sloveniya Janubiy Afrika Ispaniya Shri-Lanka Shvetsiya Shveytsariya Suriya Tayvan Tojikiston Tailand Trinidad va Tobago Tunis Turkiya Turkmaniston B.A.A Ukraina Buyuk Britaniya Qo'shma Shtatlar Urugvay O'zbekiston Vetnam Yaman Zimbabve

Majburiy

Har qanday veb-ishlab chiquvchi uchun hozirda uning mahsulotining to'liq o'zaro faoliyat brauzer muvofiqligidan jiddiyroq muammo yo'q. Bu, ehtimol, yaxshi mutaxassisning asosiy vazifalaridan biri: uning veb-sayti har doim barcha brauzerlarda to'g'ri ko'rsatilishini ta'minlash.

Ba'zan kiritish uchun ishlatiladigan kerakli parametr qadimgi IEda ishlamaydi, uni shunchaki shunday qoldirish mumkin emas. Hali ham IE6 dan foydalanayotgan nafaqaga chiqqan foydalanuvchilar saytingizdan Google Chrome brauzerining soʻnggi versiyasi foydalanuvchilari kabi foydalanish qulayligiga ega boʻlishi kerak. Veb-ishlab chiquvchilardan tashqari kim ularga g'amxo'rlik qilishi mumkin.

Og'riqli nuqta haqida, Internet Explorer haqida

Firefox, Opera va Google Chrome o'z ichiga olgan oddiy brauzerlar uchun bu vazifa nisbatan oson. Ushbu brauzerlarning eski versiyalari ham HTML kodini bir xil darajada yaxshi aks ettiradi, agar, albatta, ba'zi yangi texnologiyalar qo'llanilmasa. Ammo Internet Explorer oilasi brauzerlarida bunga erishish uchun oddiygina Herkul harakatlari talab qilinadi.

Internet Explorer brauzerining har bir versiyasi o'ziga xos ahmoqlikka ega. IE6 da ishlaydigan narsa IE7 da to'g'ri ishlamasligi mumkin va aksincha. Microsoft o'z brauzerining so'nggi versiyasida ham bu hayvonot bog'ini yengib chiqa olmadi.

Nima uchun brauzer ishlab chiquvchilari veb-sayt yaratish uchun W3C standartlarini ochib, o'qiy olmasligini tushunolmayapman.

Shuning uchun, veb-dasturchi sifatida men bilim va tomoshani talab qiladigan injiq brauzerlar va saytga tashrif buyuruvchilar o'rtasida qandaydir "qatlam" bo'lishim kerak. Va veb-ishlab chiquvchilar hozirgacha buni uddalagani juda yaxshi.

Xo'sh, qanday qilib IE ning eski versiyalarida ishlashni talab qilishim mumkin?

JS yordamimizga keladi. Ilgari men bunga dosh bera olmasdim, lekin hozir men "to'g'ri" WEB kengligida usiz boshqa yo'lni ko'rmayapman.

Men quyida keltirilgan yechimni o'zim ixtiro qilmadim, lekin uni burjua blogidan oldim. Men ochko'zman va blog burjua bo'lgani uchun, men unga havola bermayman.

fnCheckFields() funktsiyasi hamma narsa uchun javobgar bo'ladi. JS kodini saytingizga joylashtiring:

function fnCheckFields(form_obj)( var error_msg = "Iltimos, barcha kerakli maydonlarni toʻldiring."; var is_error = false; for (var i = 0; form_obj_elem = form_obj.elements[i]; i++) agar (form_obj_elem.type "kiritish") || form_obj_elem.type "matn") agar (form_obj_elem.getAttribute("talab") && !form_obj_elem.value) xato = rost; agar (xato bo'lsa) alert(error_msg); return !is_error; )

Odatda uni sahifa boshida HEAD html teglari orasiga joylashtirish tavsiya etiladi, lekin baribir uni BODY yorlig'i yopilishidan oldin sahifaning eng pastki qismida joylashtirishni tavsiya qilaman. Shunday qilib, JS sahifani yuklash tezligiga kamroq ta'sir qiladi.

Kerakli parametr kiritilishi kerak bo'lgan kirish oynasi html da quyidagicha ko'rinishi kerak:

Bu skript juda sodda ishlaydi: “Yuborish” tugmasini bosgandan so‘ng skript kerakli parametr mavjudligi uchun barcha kirishlarni tekshiradi va agar uni topsa, tegishli ravishda ushbu maydonning kiritilgan qiymatini ko‘rib chiqadi. Agar bunday kirishga hech narsa kiritilmagan bo'lsa, kiritish zarurati haqida ogohlantirish oynasi ko'rsatiladi. Shunga ko'ra, ma'lumotlar hech qaerga yuborilmaydi.

Bundan tashqari, agar sizda ushbu parametrni kutilganidek tushunishni o'rgangan oddiy brauzeringiz bo'lsa, bunday ogohlantirish oynasi paydo bo'lmaydi va brauzeringiz uchun kerakli parametrni qayta ishlash uchun standart vositalar ishlaydi.

Ijtimoiy tarmoqlarda baham ko'ring tarmoqlar