Bezgaumīgs validācijas php. Validācija un datu tīrīšana, izmantojot PHP. Reģistrējiet savu validācijas noteikumu

Veidojot tīmekļa lietojumprogrammas, ir svarīgi nopietni uztvert drošību, it īpaši, ja jums ir jārisina datu iegūšana no lietotājiem.

Vispārējs drošības noteikums ir neuzticēties nevienam, tāpēc jūs nevarat paļauties uz to, ka lietotāji vienmēr ievadīs pareizās vērtības veidlapās. Piemēram, tā vietā, lai laukā ievadītu pareizo e-pasta adresi, lietotājs var ievadīt nepareizu adresi vai pat dažus ļaunprātīgus datus.

Runājot par lietotāja datu validāciju, to var izdarīt vai nu klienta pusē (tīmekļa pārlūkprogrammā), vai servera pusē.

Iepriekš klienta puses validāciju varēja veikt, tikai izmantojot JavaScript. Bet viss ir mainījies (vai gandrīz mainījies), jo ar HTML5 palīdzību validāciju var veikt pārlūkprogrammā, bez nepieciešamības rakstīt sarežģītus validācijas skriptus JavaScript.

Veidlapu validācija, izmantojot HTML5

HTML5 nodrošina diezgan stabilu mehānismu, kas balstīts uz šādiem tagu atribūtiem: tips, modelis un prasība. Izmantojot šos jaunos atribūtus, varat pārlādēt pārlūkprogrammā daļu datu validācijas funkcionalitātes.

Apskatīsim šos atribūtus, lai saprastu, kā tie var palīdzēt veidlapas validācijā.

tipa atribūts

Šis atribūts norāda, kuru ievades lauku parādīt datu apstrādei, piemēram, pazīstamo lauku

Daži ievades lauki jau nodrošina standarta validācijas metodes, bez nepieciešamības rakstīt papildu kodu. Piemēram, tas pārbauda lauku, lai pārliecinātos, ka ievadītā vērtība atbilst derīgas e-pasta adreses veidnei. Ja laukā ir ievadīta nepareiza rakstzīme, veidlapu nevar iesniegt, kamēr vērtība nav izlabota.

Mēģiniet spēlēties ar e-pasta lauku vērtībām tālāk esošajā demonstrācijā.

Ir arī citi standarta lauku veidi, piemēram, , un attiecīgi numuru, vietrāžu URL un tālruņu numuru apstiprināšanai.

Piezīme. Tālruņa numuru formāti dažādās valstīs atšķiras, jo atšķiras tālruņu numuru ciparu skaits un formātu atšķirības. Rezultātā specifikācijā nav noteikts algoritms tālruņu numuru pārbaudei, tāpēc rakstīšanas laikā pārlūkprogrammas šo funkciju slikti atbalsta.

Mums par laimi tālruņa numura apstiprināšanu var veikt, izmantojot modeļa atribūtu, kas kā argumentu izmanto regulāro izteiksmi, kuru mēs apskatīsim tālāk.

modeļa atribūts

Modeļa atribūts, iespējams, daudziem priekšgala izstrādātājiem liks lēkāt aiz prieka. Šis atribūts pieņem regulāru izteiksmi (līdzīgu JavaScript regulārās izteiksmes formātam), kas tiks izmantota, lai pārbaudītu laukā ievadīto datu pareizību.

Regulārās izteiksmes ir valoda, ko izmanto teksta parsēšanai un manipulēšanai. Tos bieži izmanto sarežģītām atrašanas un aizstāšanas darbībām, kā arī ievadīto datu pareizības pārbaudei.

Mūsdienās regulārās izteiksmes ir iekļautas populārākajās programmēšanas valodās, kā arī daudzās skriptu valodās, redaktoros, lietojumprogrammās, datu bāzēs un komandrindas utilītos.

Regulārās izteiksmes (RegEX) ir spēcīgs, kodolīgs un elastīgs rīks teksta virknes, piemēram, atsevišķu rakstzīmju, vārdu vai rakstzīmju modeļu, saskaņošanai.

Nododot parasto izteiksmi kā modeļa atribūta vērtību, varat norādīt, kādas vērtības ir pieņemamas dotajam ievades laukam, kā arī informēt lietotāju par kļūdām.

Apskatīsim dažus piemērus regulāro izteiksmju izmantošanai, lai apstiprinātu ievades lauku vērtību.

Tālruņa numuri

Kā minēts iepriekš, pārlūkprogrammas pilnībā neatbalsta tālruņa numura veidu, jo dažādās valstīs tālruņu numuru formāti ir nekonsekventi.

Piemēram, dažās valstīs tālruņa numuru formāts ir xxxx-xxx-xxxx, un pats tālruņa numurs būs aptuveni šāds: 0803-555-8205.

Regulārā izteiksme, kurai atbilst šis modelis, ir: ^\d(4)-\d(3)-\d(4)$ . Kodā to var uzrakstīt šādi:

Telefona numurs:

Burtciparu vērtības Nepieciešams atribūts

Šis ir Būla atribūts, ko izmanto, lai norādītu, ka, lai iesniegtu veidlapu, ir jāaizpilda noteiktā lauka vērtība. Kad pievienojat šo atribūtu laukam, pārlūkprogramma prasīs lietotājam aizpildīt šo lauku pirms veidlapas iesniegšanas.

Tas mūs pasargā no lauka validācijas ieviešanas, izmantojot JavaScript, kas var ietaupīt izstrādātāju laiku.

Piemēram: vai (XHTML saderībai)

Visās iepriekš redzētajās demonstrācijās tiek izmantots nepieciešamais atribūts, tāpēc varat to izmēģināt, mēģinot iesniegt veidlapu, neaizpildot nevienu lauku.

Secinājums

Pārlūkprogrammas atbalsts veidlapu validācijai ir diezgan labs, un vecākām pārlūkprogrammām varat izmantot polifilus.

Ir vērts atzīmēt, ka paļaušanās tikai uz pārlūkprogrammas puses validāciju ir bīstama, jo šīs pārbaudes var viegli apiet uzbrucēji vai robotprogrammatūras.

Ne visas pārlūkprogrammas atbalsta HTML5, un ne visi uz jūsu skriptu nosūtītie dati tiks iegūti no jūsu veidlapas. Tas nozīmē, ka pirms datu galīgās pieņemšanas no lietotāja ir jāpārbauda to pareizība servera pusē.

Pirms veidlapas iesniegšanas datu tālākai apstrādei ir ļoti svarīgi apstiprināt veidlapā ievadītos datus. Ja veidlapā ir daudz lauku, PHP validācijas skripts kļūst pārāk sarežģīts. Turklāt, tā kā jūs veicat tādu pašu vai līdzīgu validāciju lielākajai daļai izveidoto veidlapu, veidlapu validācijai tiek tērēts pārāk daudz pūļu.

Par šo vispārīgo PHP veidlapas validācijas skriptu

Šis vispārīgais PHP veidlapu pārbaudītāja skripts ļauj ļoti viegli pievienot veidlapai apstiprinājumus.

Mēs izveidojam un saistām “validācijas deskriptoru” kopu ar katru veidlapas elementu. “Validācijas deskriptors” ir virkne, kas norāda veicamās validācijas veidu. Piemēram, “req” nozīmē obligāti, “alfa” nozīmē atļaut tikai alfabēta rakstzīmes un tā tālāk.

Katram veidlapas laukam var būt nulle, viena vai vairākas validācijas. Piemēram, ievade nedrīkst būt tukša, tai jābūt mazākai par 25 rakstzīmēm, jābūt burtciparu u.c.

Katram veidlapas ievades laukam varat saistīt validācijas deskriptoru kopu.

Lejupielādējiet PHP veidlapas validācijas skriptu

Tālāk varat lejupielādēt PHP veidlapas validācijas skriptu:
Zip failā ir veidlapas validācijas skripts formvalidator.php, dokumentācija un lietošanas paraugi.

Izmantojot PHP formas validācijas skriptu
  • Veidlapas apstrādes skriptā iekļaujiet formvalidator.php
  • request_once "formvalidator.php"
  • Izveidojiet FormValidator objektu un pievienojiet veidlapas validācijas deskriptorus.
  • $validator = new FormValidator(); $validator->addValidation("Vārds","req","Lūdzu, aizpildiet Vārdu"); $validator->addValidation("E-pasts","e-pasts", "E-pasta ievadei jābūt derīgai e-pasta vērtībai"); $validator->addValidation("E-pasts","req","Lūdzu aizpildiet e-pastu");

    Pirmais arguments ir veidlapas ievades lauka nosaukums. Otrais arguments ir validācijas deskriptors, kas norāda vajadzīgās validācijas veidu. Trešais arguments ir kļūdas ziņojums, kas jāparāda, ja validācija neizdodas.

  • Validējiet veidlapu, izsaucot funkciju ValidateForm().
  • if(!$validator->ValidateForm()) ( echo "Validation Errors:"; $error_hash = $validator->GetErrors(); foreach($error_hash as $inpname => $inp_err) ( echo "

    $inpname: $inp_err

    \n"; ) ) Piemērs

    Tālāk sniegtais piemērs padarīs ideju skaidrāku

    Vārds: E-pasts:

    Pielāgotas validācijas pievienošana

    Ja vēlaties pievienot pielāgotu validāciju, ko nenodrošina validācijas deskriptori, varat to izdarīt. Tālāk ir norādītas darbības.

  • Izveidojiet klasi pielāgotajai validācijai un ignorējiet funkciju DoValidate().
  • klase MyValidator paplašina CustomValidator ( funkcija DoValidate(&$formars,&$error_hash) ( if(stristr($formars["Komentāri"],"http://")) ( $error_hash["Comments"]="Nav atļauti URL komentāros"; atgriezt nepatiesu; ) atgriezt patiesu; ) )

  • Pievienojiet pielāgoto validācijas objektu
  • $validator = new FormValidator(); $validator->addValidation("Vārds","req","Lūdzu, aizpildiet Vārdu"); $validator->addValidation("E-pasts","e-pasts", "E-pasta ievadei jābūt derīgai e-pasta vērtībai"); $validator->addValidation("E-pasts","req","Lūdzu aizpildiet e-pastu"); $custom_validator = jauns MyValidator(); $validator->AddCustomValidator($custom_validator);

    Pielāgotā validācijas funkcija tiks izsaukta automātiski pēc citām validācijām.

    Validācijas deskriptoru tabula

    Šeit ir visu validācijas deskriptoru saraksts:

    Validācijas deskriptorsLietošana
    reqLauks nedrīkst būt tukšs
    maxlen=???maksimāli pārbauda ievadīto datu garumu. Piemēram, ja maksimālais atļautais izmērs ir 25, norādiet validācijas deskriptoru kā “maxlen=25”.
    minlen=???pārbauda ievadītās virknes garumu līdz vajadzīgajam minimumam. piemērs “minlen=5”
    alnumPārbaudiet datus, vai tie satur citas rakstzīmes, izņemot alfabēta vai ciparu rakstzīmes
    alnum_sAtļauj tikai alfabēta, ciparu un atstarpes rakstzīmes
    nrPārbaudiet skaitliskos datus
    alfaPārbaudiet alfabētiskos datus.
    alfa_sPārbaudiet alfabētiskos datus un atstājiet atstarpes.
    e-pastsLauks ir e-pasta lauks un pārbauda datu derīgumu.
    lt=???
    mazāk =???
    Pārbaudiet, vai dati ir mazāki par nodoto vērtību. Derīgs tikai ciparu laukiem.
    piemērs: ja vērtībai ir jābūt mazākai par 1000, norādiet validācijas aprakstu kā “lt=1000”
    gt=???
    lielāks par =???
    Pārbaudiet, vai dati ir lielāki par nodoto vērtību. Derīgs tikai ciparu laukiem.
    piemērs: ja vērtībai ir jābūt lielākai par 10, norādiet validācijas aprakstu kā “gt=10”
    regexp=???Pārbaudiet, izmantojot regulāro izteiksmi, vērtībai ir jāatbilst regulārajai izteiksmei.
    piemērs: “regexp=^(1.20)$” pieļauj līdz 20 alfabēta rakstzīmēm.
    neizvēlēties =??Šis validācijas deskriptors ir paredzēts atlasītajiem ievades vienumiem (sarakstiem). Parasti atlases sarakstlodziņos ir viens vienums ar uzrakstu “Atlasīt vienu”. Lietotājam ir jāizvēlas cita opcija, nevis šī opcija. Ja šīs opcijas vērtība ir “Select One”, validācijas aprakstam jābūt “dontselect=Select One”.
    dontselectchkŠis validācijas deskriptors ir paredzēts izvēles rūtiņām. Lietotājam nevajadzētu atzīmēt norādīto izvēles rūtiņu. Norādiet izvēles rūtiņas vērtību, nevis ??
    Piemēram, dontselectchk=on
    shouldselchkŠis validācijas deskriptors ir paredzēts izvēles rūtiņām. Lietotājam ir jāatzīmē dotā izvēles rūtiņa. Norādiet izvēles rūtiņas vērtību, nevis ??
    Piemēram, shouldselchk=on
    neizvēlēties radioŠis validācijas deskriptors ir paredzēts radio pogām. Lietotājam nevajadzētu atlasīt norādīto radio pogu. Norādiet radio pogas vērtību, nevis ??
    Piemēram, dontselectradio=NO
    izvēlieties radioŠis validācijas deskriptors ir paredzēts radio pogām. Lietotājam jāizvēlas attiecīgā radio poga. Norādiet radio pogas vērtību, nevis ??
    Piemēram, selectradio=yes
    selmin=??Atzīmējiet vismaz n izvēles rūtiņu skaitu no izvēles rūtiņu grupas.
    Piemēram: selmin=3
    SelonePadara radio grupu obligātu. Lietotājam ir jāatlasa vismaz viens vienums no radio grupas.
    eqelmnt=???salīdziniet divus veidlapas elementus un pārliecinieties, ka vērtības ir vienādas. Piemēram, “parole” un “apstiprināt paroli”. Aizstāt ??? ar otra ievades elementa nosaukumu.
    Piemēram: eqelmnt=confirm_pwd

    Mēs runāsim par POST vai GET datu validāciju, lai gan principā to var attiecināt arī uz datiem, kas saņemti ar citām metodēm, piemēram, sīkdatnēm. Izstrādājot jebkuru tīmekļa lietojumprogrammu, jums ir jāraksta saskarne mijiedarbībai ar lietotājiem un, protams, jāizveido dažādas veidlapas, lai lietotāji varētu nosūtīt datus uz serveri. piemēram, tie varētu būt komentāri. Manuprāt, visiem ir skaidrs un skaidrs, ka saņemtie dati ir jāpārbauda, ​​vai tie atbilst veidam, izmēram un noteiktajam diapazonam. Pirmkārt, tas ir nepieciešams sistēmas, vietnes vai datu bāzes drošībai, jo... Nepareizi pārsūtīti dati vai apzināti slikti noformēts pieprasījums var atvērt piekļuvi uzbrucējam.

    Otrkārt, nepārbaudīti dati, ja tie ir nepareizi, var izraisīt nestabilu skripta, sistēmas vai visa servera darbību. Tāpēc visi dati ir jāpārbauda un vēlreiz jāpārbauda, ​​varbūt kāds teiks, ka nav vajadzīga pārmērīga paranoja, bet es uzskatu, ka šajā jautājumā tā vienkārši nevar būt pārmērīga.

    Neuzticieties datiem, kas saņemti no lietotājiem, aizbildinoties un nekādā gadījumā. Gadās, ka vienkārši esam slinki rakstīt kodu, kas vēlreiz pārbauda saņemtos datus, vai arī ceram, ka pietiek ar esošajām pārbaudes metodēm, kā rezultātā piekāpjamies sev.

    Neliela atkāpe no tēmas:
    Darbs pie projektiem, vietņu, skriptu un citu sistēmu izstrāde un programmēšana aizņem gandrīz visu manu brīvo laiku (neskaitot darba laiku), proti, es daru šo darbu maksimāli iespējamo stundu skaitu dienā. Ik pa laikam rodas nepieciešamība kaut ko pārbaudīt, prieka pēc vai vienkārši ziņkārības pēc. Rezultātā vietnes, kas izveidotas steigā, izmantojot paštaisītus dzinējus vai seno versiju CMS, kļūst par līdzīgām testēšanas laboratorijas žurkām. Protams, viss iepriekš minētais cieš no greizi uzrakstīta koda, datu kontroles trūkuma un vienkārši mudž no dažādām kļūdām. Patiesībā vairumā gadījumu stundas laikā, veicot eksperimentus šādās vietnēs, man izdodas atrast vairākas nopietnas ievainojamības, un lielākā daļa no tām slēpjas nepietiekamā saņemto datu validācijā. Pēdējā laikā tas bieži tika atrasts skriptos, kas apstrādā POST datus, kas saņemti no JavaScript + Ajax.

    Acīmredzot programmētāji, kuri rakstīja šos skriptus, izmantojot Ajax, uzskata, ka, tā kā visi pieprasījumi notiek fonā, lietotājam nezinot vai vienkārši nepārlādējot lapu, tad dati nav īpaši jāpārbauda.

    Kā likums, diezgan daudzi no šiem skriptiem izrādās tik caurumu pilni, ka bez lielas piepūles izdodas izveidot lielāku caurumu un appludināt čaulu. protams, tikai eksperimentēšanas nolūkos un nekas vairāk (šādu vietņu administrācija vienmēr ir informēta par esošajām ievainojamībām).

    Es domāju, ka apstiprināšanas nozīme ir skaidra ikvienam. Ilgu laiku es katru reizi rakstīju vienu un to pašu kodu, pēc tam izmantoju savas datu pārbaudes funkcijas, no kurām daudzas bija ļoti primitīvas un, kā likums, izkaisītas dažādās (iekļauto) failu daļās. Drīz es sāku iepazīties ar PHP ietvariem Zend, CI, Kohana, no kuriem katrs ieviesa savu klasi datu validēšanai, ko es aizņēmos saviem projektiem. Beigās nolēmu vienu no CI nodarbībām pielāgot savām vajadzībām, taču izrādījās, ka viena programmēšanas bloga autors par to jau bija parūpējies. Tālāk es dalos ar viņa darbiem, proti, modificēto CodeIgniter bibliotēku.

    Apskatīsim šādu kodu:

    Skatīt kodu PHP

    request_once "validator.class.php" ; $validator = new Validator() ; $validator -> set_rules ("vārds" , "Tavs vārds" , masīvs ("nepieciešams" => , "alpha" => ) ) ; $validator -> set_rules ("e-pasts" , "Jūsu e-pasts" , masīvs ("required" => "Lauks %s ir nepieciešams" , "valid_email" => ) ) ; if ($validator -> palaist () ) ( echo "Validācija bija veiksmīga" ; ) else ( echo $validator -> get_string_errors () ; )

    Kā redzams piemērā, pirmajā rindā mēs iekļaujam klases failu validator.calss.php uz mūsu scenāriju. Tālāk mēs izveidojam klases gadījumu un saglabājam objektu mainīgajā $validators.
    Pēc tam izmantojot metodi $validator->set_rules($field, $label, $rules) iestatiet laukus apstiprināšanai.

    Šai metodei ir nepieciešami 3 parametri:

  • $lauks- validācijas lauka nosaukums (taga atribūta name vērtība)
  • $label- validācijas lauka nosaukums, tiks ievietots kļūdu ziņojumos
  • $noteikumi- validācijas noteikumu masīvs, kurā validācijas noteikums tiek izmantots kā atslēga, un kļūdas ziņojums šim noteikumam tiek izmantots kā vērtība
  • Kad visi validācijas lauki ir iestatīti, mēs palaižam validatoru, izmantojot metodi $validator->run(). Ja validācija bija veiksmīga, šī metode atgriezīs vērtību PATIESA, pretējā gadījumā, ja ir kādas kļūdas, tas atgriezīsies FALSE.

    Ir trīs veidi, kā saņemt kļūdu ziņojumus:

  • get_string_errors()- atgriež visus kļūdu ziņojumus kā virkni
  • get_array_errors()— atgriež visus ziņojumus kā masīvu, kur kā atslēga tiek izmantots lauka nosaukums un kā vērtība tiek izmantots šī lauka kļūdas apraksts.
  • form_error($field)- atgriež kļūdas ziņojumu laukam, kas nodots kā parametrs $field
  • Pēc noklusējuma kļūdu ziņojumi tiek iesaiņoti tagā . Lai iestatītu savu dizainu, izmantojiet metodi set_error_delimiters($prefikss, $sufikss). Piemēram, šādi:

    Kļūdu ziņojumi tagad tiks parādīti kā div ar klasi "kļūda"

    Kā redzat, viss ir ļoti vienkārši.

    Skatīt kodu PHP

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

    Lai iestatītu validācijas noteikumus, varat izmantot metodi set_rules($fields) iziet daudzdimensiju asociatīvo masīvu. Apskatīsim piemēru:

    Skatīt kodu PHP

    $noteikumi = masīvs ( masīvs ( "lauks" => "nosaukums" , "label" => "Tavs vārds" , "noteikumi" => masīvs ( "required" => "Lauks %s ir nepieciešams" , "alpha" = > "Laukā %s jābūt tikai burtiem" ), masīvs ( "lauks" => "e-pasts" , "label" => "Jūsu e-pasts" , "noteikumi" => masīvs ( "required" => "Lauks % s ir prasīts" , "valid_email" => "Laukam %s jābūt derīgai e-pasta adresei" ) ) ) ; $validator -> set_noteikumi ($noteikumi ) ;

    Kā redzat, es pierakstīju tos pašus validācijas noteikumus kā pirmajā piemērā, tikai daudzdimensiju asociatīvā masīva veidā. Varat izmantot jebkuru no metodēm, kas jums vislabāk atbilst konkrētajā situācijā.

    Tātad, kādus validācijas noteikumus atbalsta šī klase?

    Es ienesu šajā klasē visizplatītākos validācijas noteikumus, ar kuriem saskaras ikviens. Šeit ir pilns šo noteikumu saraksts:

    nepieciešamsAtgriež FALSE, ja lauks ir tukšs
    vesels skaitlisAtgriež FALSE, ja vērtība nav vesels skaitlis
    peldētAtgriež FALSE, ja vērtība nav skaitliska vērtība
    derīgs_urlAtgriež FALSE, ja vērtība nav derīgs URL
    derīgs_e-pastsAtgriež FALSE, ja vērtība nav derīga e-pasta adrese
    derīgs_ipAtgriež FALSE, ja IP adrese nav derīga
    sērkociņiAtgriež FALSE, ja elements neatbilst cita lauka elementa vērtībai
    alfaAtgriež FALSE, ja elementā ir vairāk nekā tikai burti
    valid_captchaAtgriež FALSE, ja vērtība sesijas laukā nav vienāda ar veidlapas lauka vērtību
    derīgs datumsAtgriež FALSE, ja elementā ir nederīgs datums

    Lielākajā daļā šo noteikumu tiek izmantoti filtri, kas kļuva pieejami PHP 5.

    Ja vēlaties, vienmēr varat paplašināt validācijas noteikumu kopumu, pievienojot Validator klasei nepieciešamās funkcijas.

    Lai iegūtu apstrādāto POST datu vērtību, izmantojiet šādu metodi:

    Skatīt kodu PHP

    Parasti šī metode tiek izsaukta, lai notīrītu veidlapu pēc veiksmīgas veidlapas apstrādes.

    Labvakar visiem (vairāk kā nakts - red. piezīme). Šodien mēs to nedaudz uzlabosim. Vispirms uzzināsim, kā veikt veidlapu validāciju PHP un veikt dažas drošības manipulācijas.

    Tātad, skatiet tālāk norādīto kodu un ņemiet vērā tālāk norādītās izmaiņas un šādus izmaiņu iemeslus. Visas jaunās līnijas izcēlu ar krāsu.

    Veidlapas lauku nosaukumi ir mainīti. Jūs varat jautāt – kāpēc pie velna mums tas ir vajadzīgs? Tas ir vienkārši, es jums atbildēšu. Cik man zināms, daži surogātpasta roboti pārmeklē vietnes, meklējot veidlapas, un aizpilda tās, pamatojoties uz šo lauku nosaukumiem. Teorētiski, ja viņi neatrod spēli, viņi dodas mājās, un tas ir tas, ko mēs vēlamies. Protams, es nedomāju, ka šīs aizsardzības pakāpe ir īpaši liela, taču tas mums nekaitēs, un, ja surogātpasta e-pasti samazināsies par vienu burtu, tas būs labi =).

    Pārbauda, ​​vai e-pasta adrese ir ievadīta pareizi. 17. rindā tiek izmantots operators elseif, kas tiks pārbaudīts, ja mums tiks atgriezta pozitīva atbilde, tas ir, teikts, ka e-pasta adrese vispār trūkst, tas ir, tā nav ievadīta. Šeit mēs izmantojam funkciju preg_match, kas ļauj salīdzināt ievadīto adresi ar regulāra izteiksme. Varbūt es vēlāk īsi uzrakstīšu par regulārām izteiksmēm, taču šobrīd ir vērts zināt, ka regulārā izteiksme rada sava veida veidni, pret kuru tiek pārbaudīta mūsu virkne. Un, ja mūsu gadījumā ievadītā adrese neatbilst izteiksmei, atkal tiks parādīta kļūda. Piemēram, šeit ir vēl dažas regulāras izteiksmes:
    |^[-а-яе\s\.,;:\?!]+$|i– šī regulārā izteiksme ļauj izmantot tikai krievu alfabētu un dažas rakstzīmes, piemēram, atstarpi, punktu, komatu utt.
    #http://[-a-z0-9_.]+[-a-z0-9_:@&?=+,.!/~*’%$]*\.(html?|php)#i– un šī izteiksme ļauj pārbaudīt adreses pareizrakstību internetā.

    Tālāk mēs izmantojam operatoru else, kur viss mūsu kods vēstules nosūtīšanai jau ir pārsūtīts. Jūs pats varat izveidot verifikācijas noteikumus jebkurā daudzumā, vienkārši pievienojiet jaunus, piemēram, e-pasta adreses pārbaudei, un jūs būsiet laimīgs.




    Kontaktpersona:



    E-pasts saziņai:



    Ziņa:






    Tādā veidā jūs varat apstiprināt savas PHP veidlapas, neizmantojot neko svešu. Es domāju, ka nākamreiz ierakstā par veidlapu tēmu tiks apsvērta veidlapu validācija programmā jQuery. Tikmēr gaidu jūsu komentārus un vēlmes. Ar labu nakti un priecīgu rītu visiem =).

    Šajā un nākamajās nodaļās ir parādīts, kā izmantot PHP, lai pārbaudītu veidlapas datus.

    PHP veidlapas validācija

    Apstrādājot PHP formas, domājiet par DROŠĪBU!

    Šajās lapās tiks parādīts, kā apstrādāt PHP veidlapas, paturot prātā drošību. Pareiza veidlapas datu validācija ir svarīga, lai aizsargātu veidlapu no hakeriem un surogātpasta izplatītājiem!

    HTML veidlapa, pie kuras mēs strādāsim šajās nodaļās, satur dažādus ievades laukus: obligātos un neobligātos teksta laukus, radio pogas un iesniegšanas pogu:

    Iepriekš minētās veidlapas apstiprināšanas noteikumi ir šādi:

    Lauka apstiprināšanas noteikumi
    Vārds Obligāti. + Jāietver tikai burti un atstarpes
    E-pasts Obligāti. + Jāiekļauj derīga e-pasta adrese (ar @ un .)
    Tīmekļa vietne Neobligāti. Ja ir, tajā ir jābūt derīgam URL
    komentēt Neobligāti. Vairāku rindiņu ievades lauks (teksta apgabals)
    Dzimums Obligāti. Jāizvēlas viens

    Vispirms apskatīsim veidlapas vienkāršu HTML kodu:

    Teksta lauki

    Vārda, e-pasta un vietnes lauki ir teksta ievades elementi, un komentāru lauks ir teksta apgabals. HTML kods izskatās šādi:

    Vārds:
    E-pasts:
    Tīmekļa vietne:
    komentēt:

    Radio pogas

    Dzimuma lauki ir radio pogas, un HTML kods izskatās šādi:

    Dzimums:
    Sieviete
    Vīrietis
    Cits

    Formas elements

    Veidlapas HTML kods izskatās šādi: