Амтгүй баталгаажуулалт php. PHP ашиглан баталгаажуулалт, өгөгдөл цэвэрлэх. Өөрийн баталгаажуулах дүрмийг бүртгэж байна

Вэб програм бүтээхдээ аюулгүй байдлыг нухацтай авч үзэх нь чухал бөгөөд ялангуяа хэрэглэгчдээс мэдээлэл авах асуудалтай тулгардаг.

Аюулгүй байдлын ерөнхий дүрэм бол хэнд ч итгэхгүй байх явдал тул та хэрэглэгчдэд дандаа зөв утгыг маягт руу оруулна гэж найдаж болохгүй. Жишээлбэл, хэрэглэгч талбарт зөв имэйл хаяг оруулахын оронд буруу хаяг, тэр ч байтугай зарим хортой өгөгдөл оруулж болно.

Хэрэглэгчийн өгөгдлийг баталгаажуулах тухайд үүнийг клиент тал (вэб хөтөч дээр) эсвэл сервер тал дээр хийж болно.

Өмнө нь үйлчлүүлэгч талын баталгаажуулалтыг зөвхөн JavaScript ашиглан хийдэг байсан. Гэхдээ бүх зүйл өөрчлөгдсөн (эсвэл бараг өөрчлөгдсөн), учир нь HTML5-ийн тусламжтайгаар баталгаажуулалтыг JavaScript дээр нарийн төвөгтэй баталгаажуулалтын скрипт бичих шаардлагагүйгээр хөтөч дээр хийж болно.

HTML5 ашиглан маягтын баталгаажуулалт

HTML5 нь дараах шошгоны шинж чанарууд дээр суурилсан нэлээд бат бөх механизмыг хангадаг: төрөл, загвар, шаардлага. Эдгээр шинэ шинж чанаруудын тусламжтайгаар та өгөгдлийн баталгаажуулалтын зарим функцийг хөтөч рүү ачаалж болно.

Маягтыг баталгаажуулахад хэрхэн тусалж болохыг ойлгохын тулд эдгээр шинж чанаруудыг харцгаая.

төрлийн шинж чанар

Энэ шинж чанар нь өгөгдөл боловсруулахад аль оролтын талбарыг харуулахыг зааж өгдөг, тухайлбал танил талбар гэх мэт

Зарим оролтын талбарууд нь нэмэлт код бичих шаардлагагүйгээр баталгаажуулах стандарт аргуудыг аль хэдийн өгсөн байдаг. Жишээлбэл, оруулсан утга нь хүчинтэй имэйл хаягийн загвартай тохирч байгаа эсэхийг шалгах талбарыг шалгадаг. Хэрэв талбарт буруу тэмдэгт оруулсан бол утгыг засах хүртэл маягтыг оруулах боломжгүй.

Доорх үзүүлэн дээрх имэйлийн талбарын утгуудаар тоглож үзээрэй.

Мөн дугаар, URL болон утасны дугаарыг баталгаажуулах гэх мэт стандарт талбарын төрлүүд байдаг.

Тайлбар: Утасны дугаарын цифрүүдийн тоо болон форматын ялгаатай байдлаас шалтгаалан утасны дугаарын формат нь улс орон бүрт өөр өөр байдаг. Үүний үр дүнд техникийн үзүүлэлтүүд нь утасны дугаарыг шалгах алгоритмыг тодорхойлдоггүй тул бичиж байх үед энэ функцийг хөтчүүд муу дэмждэг.

Бидний аз болоход утасны дугаар баталгаажуулалтыг аргумент болгон тогтмол илэрхийлэл авдаг загвар шинж чанарыг ашиглан хийж болно, бид үүнийг дараа нь авч үзэх болно.

загварын шинж чанар

Загварын шинж чанар нь олон тооны хөгжүүлэгчдийг баяр баясгалантай болгох болно. Энэ шинж чанар нь талбарт оруулсан өгөгдлийн үнэн зөвийг шалгахад ашиглагдах ердийн илэрхийлэл (JavaScript ердийн илэрхийллийн форматтай төстэй) хүлээн авдаг.

Тогтмол хэллэг нь текстийг задлан шинжлэх, боловсруулахад ашигладаг хэл юм. Тэдгээрийг ихэвчлэн нарийн төвөгтэй олох, солих үйлдлүүд, мөн оруулсан мэдээллийн үнэн зөвийг шалгахад ашигладаг.

Өнөөдөр ердийн хэллэгүүд нь хамгийн алдартай програмчлалын хэл, мөн олон скрипт хэл, засварлагч, программ, мэдээллийн сан, командын мөрийн хэрэгслүүдэд багтдаг.

Тогтмол илэрхийлэл (RegEX) нь бие даасан тэмдэгт, үг, тэмдэгтийн загвар зэрэг текстийн мөрийг тохируулах хүчирхэг, товч бөгөөд уян хатан хэрэгсэл юм.

Загварын атрибутын утга болгон ердийн илэрхийллийг дамжуулснаар та өгөгдсөн оролтын талбарт ямар утгыг хүлээн зөвшөөрч болохыг зааж өгөхөөс гадна алдааны талаар хэрэглэгчдэд мэдэгдэх боломжтой.

Оролтын талбаруудын утгыг баталгаажуулахын тулд ердийн илэрхийлэл ашиглах хэд хэдэн жишээг харцгаая.

Утасны дугаарууд

Өмнө дурьдсанчлан, өөр өөр улс орнуудад утасны дугаарын форматад нийцэхгүй байгаа тул утасны талбарын төрлийг хөтчүүд бүрэн дэмждэггүй.

Жишээлбэл, зарим улс оронд утасны дугаарын формат нь xxxx-xxx-xxxx бөгөөд утасны дугаар нь өөрөө иймэрхүү байх болно: 0803-555-8205.

Энэ загварт тохирох ердийн илэрхийлэл нь: ^\d(4)-\d(3)-\d(4)$ . Код дээр үүнийг дараах байдлаар бичиж болно.

Утасны дугаар:

Үсэг тоон утгууд Аттрибут шаардлагатай

Энэ нь маягтыг илгээхийн тулд тухайн талбарын утгыг заавал бөглөх ёстойг илтгэх Boolean шинж чанар юм. Энэ шинж чанарыг талбарт нэмэх үед хөтөч маягтыг илгээхээсээ өмнө хэрэглэгчээс энэ талбарыг бөглөхийг шаардах болно.

Энэ нь биднийг JavaScript ашиглан талбарын баталгаажуулалтыг хэрэгжүүлэхээс авардаг бөгөөд энэ нь хөгжүүлэгчдийн цагийг хэмнэх боломжийг олгодог.

Жишээ нь: эсвэл (XHTML нийцтэй байдлын хувьд)

Таны дээр үзсэн бүх демо нь шаардлагатай шинж чанарыг ашигладаг тул та ямар ч талбар бөглөхгүйгээр маягтыг оруулахыг оролдох замаар үүнийг туршиж үзэх боломжтой.

Дүгнэлт

Хөтчийн маягтыг баталгаажуулах дэмжлэг нь маш сайн бөгөөд хуучин хөтчүүдэд та полифиллийг ашиглаж болно.

Зөвхөн хөтчийн талын баталгаажуулалтад найдах нь аюултай гэдгийг тэмдэглэх нь зүйтэй, учир нь эдгээр шалгалтыг халдагчид эсвэл роботууд амархан тойрч гарах боломжтой.

Бүх хөтөч HTML5-ийг дэмждэггүй бөгөөд таны скриптэд илгээсэн бүх өгөгдөл таны маягтаас ирэхгүй. Энэ нь хэрэглэгчээс өгөгдлийг эцсийн байдлаар хүлээн авахын өмнө серверийн тал дээр түүний зөв эсэхийг шалгах шаардлагатай гэсэн үг юм.

Маягт илгээх өгөгдлийг цаашид боловсруулахад авахын өмнө маягтынхаа оролтыг баталгаажуулах нь маш чухал юм. Маягтанд олон талбар байгаа үед PHP баталгаажуулах скрипт хэтэрхий төвөгтэй болдог. Түүнчлэн, та өөрийн хийсэн ихэнх маягтуудад ижил эсвэл ижил төстэй баталгаажуулалтыг хийж байгаа тул маягт баталгаажуулалтад давхардсан хүчин чармайлт зарцуулагдана.

Энэхүү ерөнхий PHP маягтын баталгаажуулалтын скриптийн тухай

Энэхүү ерөнхий PHP маягтын баталгаажуулагч скрипт нь таны маягтанд баталгаажуулалтыг нэмэхэд маш хялбар болгодог.

Бид маягтын элемент бүртэй "баталгаажуулалтын тодорхойлогч" багцыг үүсгэж, холбодог. "Баталгаажуулалтын тодорхойлогч" нь баталгаажуулалтын төрлийг зааж өгөх тэмдэгт мөр юм. Жишээлбэл, "req" нь шаардлагатай гэсэн үг, "alpha" нь зөвхөн цагаан толгойн үсгийн тэмдэгтүүдийг зөвшөөрөх гэх мэт.

Маягтын талбар бүр тэг, нэг эсвэл хэд хэдэн баталгаажуулалттай байж болно. Жишээлбэл, оролт нь хоосон байх ёсгүй, 25 тэмдэгтээс бага байх ёстой, үсэг-тоон гэх мэт байх ёстой.

Та маягтын оролтын талбар бүрийн баталгаажуулалтын тодорхойлогчдын багцыг холбож болно.

PHP маягтын баталгаажуулалтын скриптийг татаж авна уу

Та доорх PHP маягтын баталгаажуулалтын скриптийг татаж авах боломжтой.
Зип файл нь formvalidator.php маягтын баталгаажуулалтын скрипт, баримтжуулалт, хэрэглээний дээжийг агуулдаг.

PHP маягтын баталгаажуулалтын скриптийг ашиглах
  • Formvalidator.php-г маягт боловсруулах скриптдээ оруулна уу
  • нэг удаа шаардах "formvalidator.php"
  • FormValidator объект үүсгэж, маягтын баталгаажуулалтын тодорхойлогчдыг нэмнэ үү.
  • $validator = шинэ FormValidator(); $validator->addValidation("Нэр", "req", "Нэрээ бөглөнө үү"); $validator->addValidation("И-мэйл","имэйл", "И-мэйл оруулах нь хүчинтэй имэйлийн утга байх ёстой"); $validator->addValidation("И-мэйл", "req", "И-мэйл бөглөнө үү");

    Эхний аргумент нь маягтын оролтын талбарын нэр юм. Хоёрдахь аргумент нь баталгаажуулалтын тодорхойлогч бөгөөд шаардлагатай баталгаажуулалтын төрлийг хэлдэг. Гурав дахь аргумент нь баталгаажуулалт амжилтгүй болсон тохиолдолд гарч ирэх алдааны мэдэгдэл юм.

  • ValidateForm() функцийг дуудаж маягтыг баталгаажуулна уу
  • if(!$validator->ValidateForm()) ( echo "Баталгаажуулалтын алдаа:"; $error_hash = $validator->GetErrors(); foreach($inpname шиг $error_hash => $inp_err) ( echo "

    $inpname: $inp_err

    \n"; ) ) Жишээ

    Доорх жишээ нь санааг илүү тодорхой болгох болно

    Нэр: Имэйл:

    Тусгай баталгаажуулалтыг нэмж байна

    Хэрэв та баталгаажуулалтын тодорхойлогчоор хангаагүй захиалгат баталгаажуулалтыг нэмэхийг хүсвэл үүнийг хийж болно. Энд алхамууд байна:

  • Захиалгат баталгаажуулалтын анги үүсгэж, DoValidate() функцийг хүчингүй болго
  • анги MyValidator CustomValidator өргөтгөл ( функц DoValidate(&$formars,&$error_hash) ( if(stristr($formars["Сэтгэгдэл"],"http://")) ( $error_hash["Сэтгэгдэл"]="URL оруулахыг зөвшөөрөхгүй сэтгэгдэлд"; худал буцаана; ) үнэнийг буцаана; ) )

  • Тусгай баталгаажуулалтын объектыг нэмнэ үү
  • $validator = шинэ FormValidator(); $validator->addValidation("Нэр", "req", "Нэрээ бөглөнө үү"); $validator->addValidation("И-мэйл","имэйл", "И-мэйл оруулах нь хүчинтэй имэйлийн утга байх ёстой"); $validator->addValidation("И-мэйл", "req", "И-мэйл бөглөнө үү"); $custom_validator = шинэ MyValidator(); $validator->AddCustomValidator($custom_validator);

    Бусад баталгаажуулалтын дараа захиалгат баталгаажуулалтын функц автоматаар дуудагдах болно.

    Баталгаажуулах тодорхойлогчдын хүснэгт

    Бүх баталгаажуулалтын тодорхойлогчдын жагсаалт энд байна:

    Баталгаажуулалтын тодорхойлогчХэрэглээ
    шаардлагаТалбай хоосон байх ёсгүй
    maxlen=???оруулсан өгөгдлийн уртыг дээд тал нь шалгана. Жишээлбэл, зөвшөөрөгдсөн дээд хэмжээ нь 25 бол баталгаажуулалтын тодорхойлогчийг "maxlen=25" гэж өгнө.
    минлэн=???оруулсан мөрийн уртыг шаардлагатай хамгийн бага хэмжээнд хүртэл шалгана. жишээ "minlen = 5"
    төгсөгчӨгөгдөлд цагаан толгойн үсгийн болон тоон тэмдэгтээс өөр тэмдэгт байгаа эсэхийг шалгана уу
    төгсөгчидЗөвхөн цагаан толгойн үсэг, тоо болон зайны тэмдэгтүүдийг зөвшөөрдөг
    тооТоон өгөгдлийг шалгана уу
    альфаЦагаан толгойн үсгийн өгөгдлийг шалгана уу.
    альфаЦагаан толгойн үсгийн өгөгдлийг шалгаж, зай үлдээнэ үү.
    имэйлТалбар нь имэйлийн талбар бөгөөд өгөгдлийн үнэн зөвийг шалгана.
    lt=???
    бага =???
    Өгөгдлийг дамжуулсан утгаас бага байгаа эсэхийг шалгана уу. Зөвхөн тоон талбарт хүчинтэй.
    жишээ: хэрэв утга 1000-аас бага байвал баталгаажуулалтын тайлбарыг "lt=1000" гэж бичнэ үү.
    гт=???
    их=???
    Өгөгдлийг дамжуулсан утгаас их байгаа эсэхийг шалгана уу. Зөвхөн тоон талбарт хүчинтэй.
    жишээ: хэрэв утга нь 10-аас их байвал баталгаажуулалтын тайлбарыг "gt=10" гэж өгнө.
    regexp=???Утга нь ердийн илэрхийлэлтэй тохирч байх ёстойг тогтмол илэрхийллээр шалгана уу.
    Жишээ нь: "regexp=^(1.20)$" нь 20 хүртэлх цагаан толгойн тэмдэгтийг зөвшөөрдөг.
    сонгохгүй=??Энэхүү баталгаажуулалтын тодорхойлогч нь сонгон оруулах зүйл (жагсаалт)-д зориулагдсан. Ихэвчлэн сонгох жагсаалтын талбарт "Нэгийг сонгох" гэсэн нэг зүйл байх болно. Хэрэглэгч энэ сонголтоос өөр сонголтыг сонгох ёстой. Хэрэв энэ сонголтын утга нь "Нэгийг сонгох" бол баталгаажуулалтын тайлбар нь "dontselect=Нэгийг сонгох" байх ёстой.
    dontselectchkЭнэхүү баталгаажуулалтын тодорхойлогч нь шалгах хайрцагт зориулагдсан. Хэрэглэгч өгөгдсөн хайрцгийг сонгох ёсгүй. ??-ийн оронд шалгах хайрцагны утгыг оруулна уу?
    Жишээ нь, dontselectchk=on
    shouldselchkЭнэхүү баталгаажуулалтын тодорхойлогч нь шалгах хайрцагт зориулагдсан. Хэрэглэгч өгөгдсөн хайрцгийг сонгох ёстой. ??-ийн оронд шалгах хайрцагны утгыг оруулна уу?
    Жишээлбэл, shouldselchk=on
    цахилгаан радиог сонгоЭнэхүү баталгаажуулалтын тодорхойлогч нь радио товчлууруудад зориулагдсан. Хэрэглэгч өгөгдсөн радио товчлуурыг сонгох ёсгүй. ??-ийн оронд радио товчлуурын утгыг оруулна уу.
    Жишээ нь, dontselectradio=NO
    радио сонгохЭнэхүү баталгаажуулалтын тодорхойлогч нь радио товчлууруудад зориулагдсан. Хэрэглэгч өгөгдсөн радио товчлуурыг сонгох ёстой. ??-ийн оронд радио товчлуурын утгыг оруулна уу.
    Жишээ нь, selectradio=yes
    селмин=??Шалгалтын хайрцгийн бүлгээс дор хаяж n тооны нүдийг сонгоно уу.
    Жишээ нь: selmin=3
    ганцаарааРадио бүлгийг заавал байлгах ёстой. Хэрэглэгч радио бүлгээс дор хаяж нэг зүйлийг сонгох ёстой.
    eqelmnt=???маягтын хоёр элементийг харьцуулж, утгууд нь ижил байгаа эсэхийг шалгаарай Жишээ нь, "нууц үг" болон "нууц үгээ баталгаажуулах". солих ??? бусад оролтын элементийн нэрээр.
    Жишээ нь: eqelmnt=confirm_pwd

    Бид POST эсвэл GET өгөгдлийг баталгаажуулах талаар ярих болно, гэхдээ зарчмын хувьд үүнийг күүки гэх мэт бусад аргаар хүлээн авсан өгөгдөлд ашиглаж болно. Аливаа вэб програмыг боловсруулахдаа хэрэглэгчидтэй харилцах интерфэйс бичиж, хэрэглэгчдэд сервер рүү өгөгдөл илгээх янз бүрийн хэлбэрийг бий болгох хэрэгтэй. жишээлбэл, эдгээр нь тайлбар байж болно. Хүлээн авсан өгөгдөл нь төрөл, хэмжээ, заасан хүрээтэй тохирч байгаа эсэхийг шалгах шаардлагатай байгаа нь хүн бүрт ойлгомжтой бөгөөд ойлгомжтой гэж би бодож байна. Юуны өмнө энэ нь систем, вэбсайт эсвэл мэдээллийн сангийн аюулгүй байдалд шаардлагатай, учир нь... Буруу дамжуулсан өгөгдөл эсвэл зориудаар муу үүсгэсэн хүсэлт нь халдагч руу нэвтрэх эрхийг нээж болно.

    Хоёрдугаарт, баталгаажаагүй өгөгдөл, хэрэв буруу бол скрипт, систем эсвэл бүх серверийн тогтворгүй ажиллагааг үүсгэж болно. Тиймээс, бүх өгөгдлийг шалгаж, давхар шалгах хэрэгтэй, магадгүй хэн нэгэн хэт их гаж донтон байх шаардлагагүй гэж хэлэх байх, гэхдээ энэ нь зүгээр л хэтрүүлсэн байж болохгүй гэдэгт би итгэдэг.

    Хэрэглэгчдээс хүлээн авсан өгөгдөлд ямар ч тохиолдолд, ямар ч шалтгаанаар бүү итгэ. Хүлээн авсан өгөгдлийг дахин нэг удаа шалгадаг код бичихээс залхуурах тохиолдол гардаг, эсвэл одоо байгаа баталгаажуулах аргууд хангалттай байгаа гэж найдаж байгаа бөгөөд үүний үр дүнд бид өөрсдөдөө буулт хийдэг.

    Сэдвээс бага зэрэг ухрах:
    Төсөл дээр ажиллах, вэбсайт, скрипт болон бусад системийг хөгжүүлэх, програмчлах нь миний бараг бүх чөлөөт цагийг (ажлын цагаас гадна) эзэлдэг, өөрөөр хэлбэл би энэ ажлыг өдөрт хамгийн их боломжтой цагаар хийдэг. Үе үе хөгжилтэй, эсвэл зүгээр л сониуч зангаараа ямар нэг зүйлийг туршиж үзэх шаардлага гардаг. Үүний үр дүнд гар хийцийн хөдөлгүүр эсвэл эртний хувилбаруудын CMS ашиглан яаран хийсэн сайтууд ижил төстэй туршилтын лабораторийн хархнууд болжээ. Мэдээжийн хэрэг, дээр дурдсан бүх зүйл нь буруу бичсэн код, мэдээллийн хяналтгүй байдлаас болж зовж шаналж, янз бүрийн алдаануудаар дүүрэн байдаг. Үнэндээ ихэнх тохиолдолд ийм сайтууд дээр хийсэн туршилтынхаа нэг цагийн дотор би хэд хэдэн ноцтой эмзэг байдлыг олж мэдсэн бөгөөд ихэнх нь хүлээн авсан өгөгдлийн баталгаажуулалт хангалтгүй байдаг. Сүүлийн үед энэ нь JavaScript + Ajax-аас хүлээн авсан POST өгөгдлийг боловсруулдаг скриптүүдээс ихэвчлэн олддог.

    Ajax ашиглан эдгээр скриптийг бичсэн программистууд бүх хүсэлтүүд цаана нь, хэрэглэгчийн мэдэлгүйгээр эсвэл хуудсыг дахин ачаалахгүйгээр явагддаг тул өгөгдлийг тусгайлан шалгах шаардлагагүй гэж үзэж байгаа бололтой.

    Дүрмээр бол эдгээр скриптүүдийн нэлээд хэсэг нь нүхээр дүүрэн байдаг тул тэд их хүчин чармайлтгүйгээр илүү том нүх гаргаж, бүрхүүлээ үерлэж чаддаг. Мэдээжийн хэрэг, зөвхөн туршилтын зорилгоор, өөр юу ч биш (ийм сайтуудын удирдлага нь одоо байгаа сул талуудын талаар үргэлж мэдэгддэг).

    Баталгаажуулалтын ач холбогдол нь хүн бүрт ойлгомжтой гэж би бодож байна. Удаан хугацааны турш би нэг удаа код бичиж, дараа нь өөрийн өгөгдөл шалгах функцуудыг ашигладаг байсан бөгөөд тэдгээрийн ихэнх нь маш энгийн бөгөөд дүрмээр бол (оруулсан) файлуудын өөр өөр хэсэгт тараагдсан байв. Удалгүй би Zend, CI, Kohana гэсэн PHP фреймворкуудтай танилцаж эхэлсэн бөгөөд тэдгээр нь тус бүр өөрийн төслүүдэд зориулж зээлсэн өгөгдлийг баталгаажуулах өөрийн ангиудыг хэрэгжүүлсэн. Эцэст нь би CI ангиудын аль нэгийг өөрийн хэрэгцээнд нийцүүлэхээр шийдсэн боловч нэг програмчлалын блогын зохиогч үүнийг аль хэдийн зохицуулсан байсан. Дараа нь би түүний бүтээлүүд, тухайлбал өөрчлөгдсөн CodeIgniter номын санг хуваалцаж байна.

    Дараах кодыг харцгаая.

    Кодыг харах PHP

    require_once "validator.class.php" ; $validator = шинэ Баталгаажуулагч() ; $validator -> set_rules ("нэр" , "Таны нэр" , массив ("шаардлагатай" => , "альфа" => ) ); $validator -> set_rules ("имэйл" , "Таны имэйл" , массив ("шаардлагатай" => "%s талбар шаардлагатай" , "valid_email" => ) ); if ($validator -> run () ) ( echo "Баталгаажуулалт амжилттай болсон"; ) else ( echo $validator -> get_string_errors () ; )

    Жишээлбэл, эхний мөрөнд бид ангийн файлыг оруулсан болно validator.calss.phpманай скрипт рүү. Дараа нь бид ангийн жишээг үүсгэж, объектыг хувьсагчид хадгална $ баталгаажуулагч.
    Дараа нь аргыг хэрэглэнэ $validator->set_rules($талбар, $шошго, $дүрэм)баталгаажуулах талбаруудыг тохируулах.

    Энэ арга нь 3 параметрийг авдаг:

  • $ талбар- баталгаажуулалтын талбарын нэр (шошго дахь нэрийн шинж чанарын утга)
  • $ шошго- баталгаажуулалтын талбарын нэрийг алдааны мэдэгдэлд оруулах болно
  • $ дүрэм- баталгаажуулалтын дүрмийг түлхүүр болгон, энэ дүрмийн алдааны мэдэгдлийг утга болгон ашигладаг баталгаажуулалтын дүрмийн массив.
  • Баталгаажуулах бүх талбарыг тохируулсны дараа бид баталгаажуулагчийг аргыг ашиглан ажиллуулна $validator->run(). Баталгаажуулалт амжилттай болсон бол энэ арга нь утгыг буцаана ҮНЭН, эс бөгөөс ямар нэг алдаа гарвал буцаж ирнэ ХУДАЛ.

    Алдааны мэдэгдлийг хүлээн авах гурван арга байдаг:

  • get_string_errors()- бүх алдааны мэдэгдлийг мөр болгон буцаана
  • get_array_errors()— бүх мессежийг массив болгон буцаадаг бөгөөд талбарын нэрийг түлхүүр болгон ашигладаг бөгөөд энэ талбарын алдааны тайлбарыг утга болгон ашигладаг.
  • хэлбэрийн_алдаа($талбар)- $field параметрээр дамжуулсан талбарт алдааны мэдэгдлийг буцаана
  • Анхдагч байдлаар, алдааны мэдэгдлүүд нь шошгонд ороосон байдаг . Загвараа тохируулахын тулд аргыг ашиглана уу set_error_delimiters($ угтвар, $ дагавар). Жишээ нь иймэрхүү:

    Алдааны мессежүүд одоо гарч ирнэ дивангитай "алдаа"

    Таны харж байгаагаар бүх зүйл маш энгийн.

    Кодыг харах PHP

    $validator -> set_error_delimiters ( " " , " " );

    Баталгаажуулах дүрмийг тохируулахын тулд та аргыг ашиглаж болно тогтоосон_дүрэм($талбар)олон хэмжээст ассоциатив массивыг дамжуулна. Нэг жишээг харцгаая:

    Кодыг харах PHP

    $ дүрэм = массив ( массив ( "талбар" => "нэр" , "шошго" => "Таны нэр" , "дүрэм" => массив ( "шаардлагатай" => "%s талбар шаардлагатай" , "альфа" = > "%s талбарт зөвхөн үсэг агуулагдах ёстой" ), массив ( "талбар" => "и-мэйл" , "шошго" => "Таны имэйл" , "дүрэм" => массив ( "шаардлагатай" => "% s талбар нь шаардлагатай" , "valid_email" => "%s талбарт хүчинтэй имэйл хаяг байх ёстой" ) ) ; $validator -> set_rules ($дүрэм);

    Таны харж байгаагаар би эхний жишээн дээрх баталгаажуулалтын дүрмийг зөвхөн олон хэмжээст ассоциатив массив хэлбэрээр бичсэн. Та тухайн нөхцөл байдалд хамгийн сайн тохирох аргуудын аль нэгийг ашиглаж болно.

    Тэгэхээр, энэ анги ямар баталгаажуулалтын дүрмийг дэмждэг вэ?

    Би энэ ангид хүн бүрт тулгардаг хамгийн нийтлэг баталгаажуулалтын дүрмийг авчирсан. Эдгээр дүрмийн бүрэн жагсаалтыг энд оруулав.

    шаардлагатайТалбар хоосон байвал ХУДАЛ буцаана
    бүхэл тооХэрэв утга нь бүхэл тоо биш бол ХУДАЛ буцаана
    хөвөхХэрэв утга нь тоон утга биш бол ХУДАЛ буцаана
    valid_urlХэрэв утга буруу URL байвал ХУДАЛ буцаана
    хүчинтэй_мэйлХэрэв утга нь хүчинтэй имэйл хаяг биш бол ХУДАЛ буцаана
    хүчинтэй_ipХэрэв IP хаяг буруу байвал ХУДАЛ буцаана
    таарч байнаХэрэв тухайн элемент өөр талбарын элементийн утгатай тохирохгүй байвал FALSE-г буцаана
    альфаЭлемент зөвхөн үсэгнээс илүүг агуулж байвал ХУДАЛ буцаана
    valid_captchaХэрэв сесс талбар дахь утга нь маягтын талбарын утгатай тэнцүү биш бол ХУДАЛ буцаана
    хүчинтэй_огнооЭлемент хүчингүй огноо агуулж байвал ХУДАЛ буцаана

    Эдгээр дүрмийн ихэнх нь PHP 5 дээр ашиглах боломжтой болсон шүүлтүүрийг ашигладаг.

    Хэрэв та хүсвэл Баталгаажуулагчийн ангилалд шаардлагатай функцүүдийг нэмж баталгаажуулах дүрмийн багцыг үргэлж өргөжүүлж болно.

    Боловсруулсан POST өгөгдлийн утгыг авахын тулд дараах аргыг ашиглана уу.

    Кодыг харах PHP

    Ихэвчлэн маягтыг амжилттай боловсруулсны дараа маягтыг арилгахын тулд энэ аргыг ашигладаг.

    Бүгдэд нь оройн мэнд (шөнө шиг - редакторын тэмдэглэл). Өнөөдөр бид үүнийг бага зэрэг сайжруулах болно. Эхлээд PHP дээр маягтын баталгаажуулалт хийж, аюулгүй байдлын зарим зохицуулалтыг хийж сурцгаая.

    Тиймээс доорх кодыг хараад дараах өөрчлөлтүүд болон өөрчлөлтийн дараах шалтгааныг анхаарна уу. Би бүх шинэ мөрүүдийг өнгөөр ​​тодруулсан.

    Маягтын талбаруудын нэрийг өөрчилсөн. Та асууж магадгүй - яагаад бидэнд энэ хэрэгтэй байна вэ? Энэ нь энгийн, би танд хариулах болно. Миний мэдэж байгаагаар зарим спам роботууд маягт хайж буй сайтуудыг шалгаж, эдгээр талбаруудын нэр дээр үндэслэн бөглөдөг. Онолын хувьд, хэрэв тэд тохирох зүйл олдохгүй бол тэд гэртээ харьдаг бөгөөд энэ нь бидний хүсч буй зүйл юм. Мэдээжийн хэрэг, энэ хамгаалалтын зэрэг нь тийм ч сайн биш гэж би бодож байна, гэхдээ энэ нь бидэнд хор хөнөөл учруулахгүй бөгөөд хэрэв спам имэйлүүд 1 үсгээр багасвал сайн байх болно =).

    Имэйл хаягийг зөв оруулсан эсэхийг шалгаж байна. 17-р мөрөнд elseif операторыг ашигладаг бөгөөд хэрэв бидэнд эерэг хариу ирвэл шалгах болно, өөрөөр хэлбэл имэйл хаяг огт байхгүй, өөрөөр хэлбэл оруулаагүй байна. Энд бид preg_match функцийг ашигладаг бөгөөд энэ нь оруулсан хаягийг харьцуулах боломжийг олгодог тогтмол илэрхийлэл. Магадгүй би дараа нь тогтмол хэллэгүүдийн талаар товчхон бичих болно, гэхдээ одоохондоо ердийн илэрхийлэл нь бидний мөрийг шалгах загвар үүсгэдэг гэдгийг мэдэх нь зүйтэй юм. Хэрэв манай тохиолдолд оруулсан хаяг нь илэрхийлэлтэй тохирохгүй байвал дахин алдаа гарч ирнэ. Жишээлбэл, энд хэд хэдэн тогтмол хэллэг байна:
    |^[-а-яе\s\.,;:\?!]+$|i– энэ тогтмол илэрхийлэл нь зөвхөн орос цагаан толгойн үсэг болон зай, цэг, таслал гэх мэт зарим тэмдэгтүүдийг ашиглах боломжийг олгодог.
    #http://[-a-z0-9_.]+[-a-z0-9_:@&?=+,.!/~*’%$]*\.(html?|php)#i– мөн энэ илэрхийлэл нь интернет дэх хаягийн зөв бичгийн дүрмийг шалгах боломжийг танд олгоно.

    Дараа нь бид захидал илгээх бүх кодыг аль хэдийн шилжүүлсэн else операторыг ашигладаг. Та ямар ч хэмжээгээр баталгаажуулах дүрмийг өөрөө үүсгэж болно, жишээлбэл имэйл хаягийг шалгах гэх мэт шинэ дүрмүүдийг нэмж оруулбал та баяртай байх болно.




    Холбоо барих хүн:



    Холбоо барих имэйл:



    Захиа:






    Ингэснээр та PHP маягтуудыг гадны ямар нэгэн зүйл ашиглахгүйгээр баталгаажуулах боломжтой. Дараагийн удаа маягтын сэдвээр нийтлэл бичихдээ jQuery дахь маягтуудын баталгаажуулалтыг авч үзэх болно гэж би бодож байна. Энэ хооронд би та бүхний санал хүсэлт, санал хүсэлтийг хүлээж байна. Бүгдэд нь оройн мэнд, өглөөний мэнд =).

    Энэ болон дараагийн бүлгүүд нь маягтын өгөгдлийг баталгаажуулахын тулд PHP-г хэрхэн ашиглахыг харуулдаг.

    PHP маягтын баталгаажуулалт

    PHP маягтуудыг боловсруулахдаа АЮУЛГҮЙ БАЙДЛЫН талаар бодоорой!

    Эдгээр хуудсууд нь аюулгүй байдлын үүднээс PHP маягтуудыг хэрхэн боловсруулахыг харуулах болно. Маягтын өгөгдлийг зөв баталгаажуулах нь таны маягтыг хакерууд болон спам илгээгчдээс хамгаалахад чухал юм!

    Эдгээр бүлгүүдэд бидний ажиллах HTML маягт нь төрөл бүрийн оруулах талбаруудыг агуулна: шаардлагатай болон нэмэлт текст талбарууд, радио товчлуурууд болон илгээх товч:

    Дээрх маягтын баталгаажуулалтын дүрэм дараах байдалтай байна.

    Талбайн баталгаажуулалтын дүрэм
    Нэр Шаардлагатай. + Зөвхөн үсэг болон хоосон зай агуулсан байх ёстой
    Имэйл Шаардлагатай. + Хүчинтэй имэйл хаяг агуулсан байх ёстой (@ болон .-тай)
    Вэб сайт Нэмэлт. Хэрэв байгаа бол энэ нь хүчинтэй URL агуулсан байх ёстой
    Сэтгэгдэл Нэмэлт. Олон мөрт оруулах талбар (textarea)
    Хүйс Шаардлагатай. Нэгийг нь сонгох ёстой

    Эхлээд бид маягтын энгийн HTML кодыг харна:

    Текстийн талбарууд

    Нэр, цахим шуудан, вэб сайтын талбарууд нь текст оруулах элемент, тайлбар талбар нь текст талбар юм. HTML код дараах байдлаар харагдаж байна.

    Нэр:
    Имэйл:
    Вэбсайт:
    Сэтгэгдэл:

    Радио товчлуурууд

    Хүйсийн талбарууд нь радио товчлуурууд бөгөөд HTML код нь дараах байдалтай байна.

    Хүйс:
    Эмэгтэй
    Эрэгтэй
    Бусад

    Маягтын элемент

    Маягтын HTML код дараах байдалтай байна.