Neukusna provjera valjanosti php. Validacija i čišćenje podataka pomoću PHP-a. Registrirajte vlastito pravilo provjere valjanosti

Prilikom izrade web aplikacija važno je ozbiljno shvatiti sigurnost, posebno kada se morate baviti prikupljanjem podataka od korisnika.

Opće sigurnosno pravilo je da se nikome ne vjeruje, tako da se ne možete osloniti na to da će korisnici uvijek unijeti točne vrijednosti u obrasce. Na primjer, umjesto ispravne adrese e-pošte u polje, korisnik može unijeti netočnu adresu ili čak neke zlonamjerne podatke.

Što se tiče provjere valjanosti korisničkih podataka, to se može učiniti na strani klijenta (u web pregledniku) ili na strani poslužitelja.

Prethodno se provjera valjanosti na strani klijenta mogla izvršiti samo pomoću JavaScripta. Ali sve se promijenilo (ili gotovo promijenilo), budući da se uz pomoć HTML5 validacija može obaviti u pregledniku, bez potrebe za pisanjem složenih validacijskih skripti u JavaScriptu.

Provjera valjanosti obrasca pomoću HTML5

HTML5 pruža prilično robustan mehanizam koji se temelji na sljedećim atributima oznake: vrsta, uzorak i zahtjev. S ovim novim atributima možete prenijeti dio funkcionalnosti provjere podataka na preglednik.

Pogledajmo ove atribute da bismo razumjeli kako mogu pomoći pri provjeri valjanosti obrasca.

atribut tipa

Ovaj atribut govori koje polje za unos prikazati za obradu podataka, na primjer poznato polje poput

Neka polja za unos već pružaju standardne metode provjere valjanosti, bez potrebe za pisanjem dodatnog koda. Na primjer, provjerava polje kako bi osigurao da unesena vrijednost odgovara predlošku važeće adrese e-pošte. Ako se u polje unese netočan znak, obrazac se ne može poslati dok se vrijednost ne ispravi.

Pokušajte se poigrati s vrijednostima polja e-pošte u demonstraciji u nastavku.

Postoje i druge standardne vrste polja, kao što su i za provjeru valjanosti brojeva, URL-ova i telefonskih brojeva.

Napomena: Formati telefonskih brojeva razlikuju se od zemlje do zemlje zbog razlika u broju znamenki u telefonskim brojevima i razlika u formatima. Kao rezultat toga, specifikacija ne definira algoritam za provjeru telefonskih brojeva, tako da u vrijeme pisanja ove značajke preglednici slabo podržavaju.

Srećom po nas, provjera valjanosti telefonskog broja može se izvršiti pomoću atributa uzorka, koji uzima regularni izraz kao argument, što ćemo pogledati sljedeće.

atribut uzorka

Atribut uzorka vjerojatno će natjerati mnoge front-end programere da poskoče od sreće. Ovaj atribut prihvaća regularni izraz (sličan JavaScript regularnom formatu izraza) koji će se koristiti za provjeru točnosti podataka unesenih u polje.

Regularni izrazi su jezik koji se koristi za raščlanjivanje i manipuliranje tekstom. Često se koriste za složene operacije traženja i zamjene, kao i za provjeru točnosti unesenih podataka.

Danas su regularni izrazi uključeni u većinu popularnih programskih jezika, kao iu mnoge skriptne jezike, uređivače, aplikacije, baze podataka i pomoćne programe naredbenog retka.

Regularni izrazi (RegEX) moćan su, koncizan i fleksibilan alat za podudaranje niza teksta, kao što su pojedinačni znakovi, riječi ili uzorci znakova.

Prosljeđivanjem regularnog izraza kao vrijednosti atributa uzorka, možete odrediti koje su vrijednosti prihvatljive za određeno polje unosa, kao i obavijestiti korisnika o pogreškama.

Pogledajmo nekoliko primjera korištenja regularnih izraza za provjeru vrijednosti polja za unos.

Brojevi telefona

Kao što je ranije spomenuto, tip polja tel nije u potpunosti podržan u preglednicima zbog nedosljednosti u formatima telefonskih brojeva u različitim zemljama.

Na primjer, u nekim zemljama format za telefonske brojeve je xxxx-xxx-xxxx, a sam telefonski broj će biti otprilike ovaj: 0803-555-8205.

Regularni izraz koji odgovara ovom uzorku je: ^\d(4)-\d(3)-\d(4)$ . U kodu se to može napisati ovako:

Broj telefona:

Alfanumeričke vrijednosti Potreban je atribut

Ovo je Booleov atribut koji se koristi za označavanje da vrijednost danog polja mora biti ispunjena kako bi se podnio obrazac. Kada dodate ovaj atribut u polje, preglednik će od korisnika zahtijevati da ispuni ovo polje prije podnošenja obrasca.

To nas spašava od implementacije provjere valjanosti polja pomoću JavaScripta, što programerima može uštedjeti vrijeme.

Na primjer: ili (za XHTML kompatibilnost)

Sve demonstracije koje ste vidjeli gore koriste obavezni atribut, pa ga možete isprobati tako da pokušate poslati obrazac bez ispunjavanja polja.

Zaključak

Podrška preglednika za provjeru valjanosti obrazaca prilično je dobra, a za starije preglednike možete koristiti višestruka popunjavanja.

Vrijedno je napomenuti da je oslanjanje samo na provjeru valjanosti na strani preglednika opasno jer te provjere napadači ili botovi mogu lako zaobići.

Ne podržavaju svi preglednici HTML5 i neće svi podaci poslani vašoj skripti doći iz vašeg obrasca. To znači da je prije konačnog prihvaćanja podataka od korisnika potrebno provjeriti njihovu ispravnost na strani poslužitelja.

Vrlo je bitno da se unos u vaš obrazac potvrdi prije nego što se podaci iz obrasca odnesu na daljnju obradu. Kada u obrascu postoji mnogo polja, PHP validacijska skripta postaje presložena. Štoviše, budući da radite istu ili sličnu provjeru valjanosti za većinu obrazaca koje izradite, jednostavno se previše dvostrukih napora troši na provjere valjanosti obrazaca.

O ovoj generičkoj PHP skripti za provjeru valjanosti obrasca

Ova generička PHP skripta za provjeru valjanosti obrasca olakšava dodavanje provjera valjanosti vašem obrascu.

Stvaramo i povezujemo skup "deskriptora provjere valjanosti" sa svakim elementom u obrascu. "Validacijski deskriptor" je niz koji specificira vrstu provjere valjanosti koja će se izvršiti. Na primjer, "req" znači potrebno, "alpha" znači dopustiti samo abecedne znakove i tako dalje.

Svako polje u obrascu može imati nula, jednu ili više validacija. Na primjer, unos ne smije biti prazan, treba imati manje od 25 znakova, treba biti alfanumerički itd.

Možete pridružiti skup deskriptora provjere valjanosti za svako polje unosa u obrascu.

Preuzmite PHP skriptu za provjeru valjanosti obrazaca

PHP skriptu za provjeru valjanosti obrazaca možete preuzeti ispod:
ZIP datoteka sadrži skriptu za provjeru valjanosti obrasca formvalidator.php, dokumentaciju i uzorke upotrebe.

Korištenje PHP skripte za provjeru valjanosti obrazaca
  • Uključite formvalidator.php u svoju skriptu za obradu obrasca
  • require_once "formvalidator.php"
  • Napravite objekt FormValidator i dodajte deskriptore provjere valjanosti obrasca.
  • $validator = novi FormValidator(); $validator->addValidation("Ime","req","Molimo unesite ime"); $validator->addValidation("E-pošta","e-pošta", "Unos za e-poštu treba biti važeća vrijednost e-pošte"); $validator->addValidation("E-mail","req","Molimo ispunite Email");

    Prvi argument je naziv polja za unos u obrascu. Drugi argument je validacijski deskriptor koji govori vrstu potrebne validacije. Treći argument je poruka o pogrešci koja će se prikazati ako provjera valjanosti ne uspije.

  • Potvrdite obrazac pozivom funkcije ValidateForm().
  • if(!$validator->ValidateForm()) ( echo "Pogreške valjanosti:"; $error_hash = $validator->GetErrors(); foreach($error_hash as $inpname => $inp_err) ( echo "

    $inpname: $inp_err

    \n"; ) ) Primjer

    Primjer u nastavku će razjasniti ideju

    Ime: Email:

    Dodavanje prilagođene provjere

    Ako želite dodati prilagođenu provjeru valjanosti, koju ne pružaju deskriptori provjere valjanosti, možete to učiniti. Evo koraka:

  • Stvorite klasu za prilagođenu provjeru valjanosti i nadjačajte funkciju DoValidate().
  • class MyValidator extends CustomValidator ( function DoValidate(&$formars,&$error_hash) ( if(stristr($formars["Comments"],"http://")) ( $error_hash["Comments"]="Nisu dopušteni URL-ovi u komentarima"; return false; ) return true; ) )

  • Dodajte prilagođeni objekt provjere valjanosti
  • $validator = novi FormValidator(); $validator->addValidation("Ime","req","Molimo unesite ime"); $validator->addValidation("E-pošta","e-pošta", "Unos za e-poštu treba biti važeća vrijednost e-pošte"); $validator->addValidation("E-mail","req","Molimo ispunite Email"); $custom_validator = novi MyValidator(); $validator->AddCustomValidator($custom_validator);

    Funkcija prilagođene provjere valjanosti bit će pozvana automatski nakon drugih provjera valjanosti.

    Tablica deskriptora provjere valjanosti

    Ovdje je popis svih validacijskih deskriptora:

    Deskriptor provjere valjanostiKorištenje
    zahtijevatiPolje ne smije biti prazno
    maxlen=???provjerava duljinu unesenih podataka do maksimuma. Na primjer, ako je maksimalna dopuštena veličina 25, dajte validacijski deskriptor kao "maxlen=25"
    minlen=???provjerava duljinu unesenog niza na traženi minimum. primjer “minlen=5”
    alnumProvjerite sadrže li podatke bilo koje druge znakove osim abecednih ili numeričkih znakova
    alnum_sDopušta samo abecedne, numeričke i razmake
    brProvjerite brojčane podatke
    alfaProvjerite abecedne podatke.
    alfa_sProvjerite abecedne podatke i dopustite razmake.
    elektronička poštaPolje je polje e-pošte i provjerite valjanost podataka.
    lt=???
    manje od=???
    Provjerite jesu li podaci manji od proslijeđene vrijednosti. Vrijedi samo za numerička polja.
    primjer: ako bi vrijednost trebala biti manja od 1000 dajte opis valjanosti kao "lt=1000"
    gt=???
    veće od=???
    Provjerite jesu li podaci veći od proslijeđene vrijednosti. Vrijedi samo za numerička polja.
    primjer: ako bi vrijednost trebala biti veća od 10 dajte opis valjanosti kao "gt=10"
    regularni izraz=???Provjerite regularnim izrazom treba li vrijednost odgovarati regularnom izrazu.
    primjer: “regexp=^(1.20)$” dopušta do 20 abecednih znakova.
    neodaberi=??Ovaj deskriptor provjere valjanosti je za odabrane ulazne stavke (popise). Obično će okviri popisa za odabir imati jednu stavku s natpisom 'Odaberi jednu'. Korisnik bi trebao odabrati neku drugu opciju osim ove opcije. Ako je vrijednost ove opcije 'Odaberi jedan', opis provjere treba biti "dontselect=Odaberi jedan"
    dontselectchkOvaj deskriptor provjere valjanosti je za potvrdne okvire. Korisnik ne bi trebao označiti dani okvir. Navedite vrijednost potvrdnog okvira umjesto ??
    Na primjer, dontselectchk=on
    trebaoselchkOvaj deskriptor provjere valjanosti je za potvrdne okvire. Korisnik treba označiti dani potvrdni okvir. Navedite vrijednost potvrdnog okvira umjesto ??
    Na primjer, shouldselchk=on
    dontselectradioOvaj deskriptor provjere valjanosti je za radio gumbe. Korisnik ne bi trebao odabrati dani radio gumb. Navedite vrijednost radio gumba umjesto ??
    Na primjer, dontselectradio=NO
    odaberiteradioOvaj deskriptor provjere valjanosti je za radio gumbe. Korisnik treba odabrati dani radio gumb. Navedite vrijednost radio gumba umjesto ??
    Na primjer, selectradio=yes
    selmin=??Odaberite najmanje n broj potvrdnih okvira iz grupe potvrdnih okvira.
    Na primjer: selmin=3
    usamljenČini radijsku grupu obaveznom. Korisnik treba odabrati barem jednu stavku iz radio grupe.
    eqelmnt=???usporedite dva elementa u obrascu i provjerite jesu li vrijednosti iste Na primjer, 'password' i 'confirm password'. Zamijenite ??? s nazivom drugog ulaznog elementa.
    Na primjer: eqelmnt=confirm_pwd

    Govorit ćemo o validaciji POST ili GET podataka, iako se to u načelu može primijeniti i na podatke primljene drugim metodama, poput kolačića. Dok razvijate bilo koju web aplikaciju, trebate napisati sučelje za interakciju s korisnicima i prirodno kreirati različite obrasce za korisnike za slanje podataka na poslužitelj. na primjer, to mogu biti komentari. Mislim da je svima jasno i očito da primljene podatke treba provjeriti odgovaraju li vrsti, veličini i navedenom rasponu. Prije svega, to je potrebno radi sigurnosti sustava, web stranice ili baze podataka jer... Netočno preneseni podaci ili namjerno loše oblikovan zahtjev mogu otvoriti pristup napadaču.

    Drugo, neprovjereni podaci, ako su netočni, mogu uzrokovati nestabilan rad skripte, sustava ili cijelog poslužitelja. Dakle, sve podatke treba provjeriti i prekontrolirati, možda će netko reći da nema potrebe za pretjeranom paranojom, ali ja vjerujem da u ovom slučaju pretjerane jednostavno ne može biti.

    Ne vjerujte podacima dobivenim od korisnika, ni pod kojim izgovorom, ni pod kojim okolnostima. Događa se da smo jednostavno previše lijeni za pisanje koda koji još jednom provjerava primljene podatke ili se nadamo da su postojeći načini provjere dovoljni, zbog čega sami sebi činimo ustupke.

    Malo odstupanje od teme:
    Rad na projektima, izrada i programiranje web stranica, skripti i ostalih sustava zauzimaju gotovo sve moje slobodno vrijeme (osim radnog vremena), drugim riječima, taj posao radim maksimalno mogući broj sati dnevno. S vremena na vrijeme postoji potreba da se nešto testira, iz zabave ili samo iz znatiželje. Kao rezultat toga, stranice napravljene na brzinu, koristeći domaće motore ili CMS starih verzija, postaju slični laboratorijski štakori za testiranje. Naravno, sve navedeno pati od krivo napisanog koda, nedostatka kontrole podataka i jednostavno vrvi raznim bugovima. Zapravo, u većini slučajeva, u sat vremena mojih eksperimenata na takvim stranicama, uspijem pronaći nekoliko ozbiljnih ranjivosti, a većina njih leži u nedovoljnoj validaciji primljenih podataka. Nedavno se ovo često nalazi u skriptama koje obrađuju POST podatke primljene od JavaScript + Ajax.

    Očigledno, programeri koji su napisali ove skripte pomoću Ajaxa vjeruju da budući da se svi zahtjevi odvijaju u pozadini, bez znanja korisnika ili jednostavno bez ponovnog učitavanja stranice, podatke ne treba posebno provjeravati.

    U pravilu nemali broj takvih skripti ispadne toliko rupčastim da bez puno truda uspiju napraviti veću rupu i preplaviti svoju ljusku. naravno, isključivo u svrhu eksperimentiranja i ništa više (administracija takvih stranica uvijek je obaviještena o postojećim ranjivostima).

    Mislim da je važnost validacije svima jasna. Dugo sam svaki put pisao isti dio koda, a zatim koristio vlastite funkcije za provjeru podataka, od kojih su mnoge bile vrlo primitivne i, u pravilu, raštrkane u različitim dijelovima (uključenih) datoteka. Ubrzo sam se počeo upoznavati s PHP okvirima Zend, CI, Kohana, od kojih je svaki implementirao svoju klasu za validaciju podataka koje sam posudio za svoje projekte. Na kraju sam odlučio jednu od CI klasa prilagoditi svojim potrebama, no pokazalo se da se za to već pobrinuo autor jednog od programerskih blogova. Zatim dijelim njegove radove, naime modificiranu biblioteku CodeIgniter.

    Pogledajmo sljedeći kôd:

    Pogledaj kod PHP

    require_once "validator.class.php" ; $validator = novi Validator() ; $validator -> set_rules ("name" , "Your name" , array ("required" => , "alpha" => ) ) ; $validator -> set_rules ("email" , "Vaša e-pošta" , array ("required" => "Polje %s je obavezno" , "valid_email" => ) ) ; if ($validator -> run () ) ( echo "Provjera je bila uspješna" ; ) else ( echo $validator -> get_string_errors () ; )

    Kao što možete vidjeti iz primjera, u prvi red uključujemo datoteku klase validator.calss.php na našu skriptu. Zatim stvaramo instancu klase i spremamo objekt u varijablu $validator.
    Zatim pomoću metode $validator->set_rules($field, $label, $rules) postavite polja za provjeru valjanosti.

    Ova metoda uzima 3 parametra:

  • $polje- naziv polja za provjeru valjanosti (vrijednost atributa name u oznaci)
  • $oznaka- naziv polja za provjeru valjanosti, bit će umetnut u poruke o pogrešci
  • $pravila- niz pravila provjere valjanosti, u kojem se pravilo provjere valjanosti koristi kao ključ, a poruka o pogrešci za ovo pravilo koristi se kao vrijednost
  • Nakon što su sva polja za provjeru postavljena, pokrećemo validator pomoću metode $validator->run(). Ako je provjera valjanosti bila uspješna, ova će metoda vratiti vrijednost PRAVI, inače će se vratiti ako ima grešaka NETOČNO.

    Postoje tri metode primanja poruka o pogrešci:

  • get_string_errors()- vraća sve poruke o grešci kao niz
  • get_array_errors()— vraća sve poruke kao niz, gdje se naziv polja koristi kao ključ, a opis pogreške za ovo polje se koristi kao vrijednost.
  • greška_forme($polje)- vraća poruku o pogrešci za polje proslijeđeno kao parametar $field
  • Prema zadanim postavkama, poruke o pogrešci su omotane u oznaku . Da biste postavili svoj dizajn, koristite metodu set_error_delimiters($prefiks, $sufiks). Na primjer ovako:

    Poruke o pogreškama sada će se pojaviti kao div s razredom "greška"

    Kao što vidite, sve je vrlo jednostavno.

    Pogledaj kod PHP

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

    Za postavljanje pravila provjere valjanosti možete koristiti metodu set_rules($fields) proslijediti višedimenzionalni asocijativni niz. Pogledajmo primjer:

    Pogledaj kod PHP

    $rules = array ( array ( "field" => "name" , "label" => "Vaše ime" , "rules" => array ( "required" => "Polje %s je obavezno" , "alpha" = > "Polje %s mora sadržavati samo slova" ) , array ( "field" => "email" , "label" => "Your email" , "rules" => array ( "required" => "Field % s is potrebno" , "valid_email" => "Polje %s mora sadržavati valjanu adresu e-pošte" ) ) ) ; $validator -> set_rules ($rules ) ;

    Kao što vidite, zapisao sam ista pravila provjere valjanosti kao u prvom primjeru, samo u obliku višedimenzionalnog asocijativnog niza. Možete koristiti bilo koju od metoda koja vam u datoj situaciji najviše odgovara.

    Dakle, koja pravila provjere valjanosti ova klasa podržava?

    U ovaj razred donio sam najčešća pravila provjere valjanosti s kojima se svi susreću. Evo cjelovitog popisa ovih pravila:

    potrebanVraća FALSE ako je polje prazno
    cijeli brojVraća FALSE ako vrijednost nije cijeli broj
    plutatiVraća FALSE ako vrijednost nije numerička vrijednost
    valid_urlVraća FALSE ako vrijednost nije važeći URL
    valid_emailVraća FALSE ako vrijednost nije važeća adresa e-pošte
    valid_ipVraća FALSE ako IP adresa nije važeća
    šibiceVraća FALSE ako element ne odgovara vrijednosti drugog elementa polja
    alfaVraća FALSE ako element sadrži više od slova
    valid_captchaVraća FALSE ako vrijednost u polju sesije nije jednaka vrijednosti polja obrasca
    valjani datumVraća FALSE ako element sadrži nevažeći datum

    Većina ovih pravila koristi filtre koji su postali dostupni u PHP-u 5.

    Ako želite, uvijek možete proširiti skup pravila za provjeru valjanosti dodavanjem potrebnih funkcija klasi Validator.

    Da biste dobili vrijednost obrađenih POST podataka, koristite sljedeću metodu:

    Pogledaj kod PHP

    Obično se ova metoda poziva za brisanje obrasca nakon uspješne obrade obrasca.

    Dobro veče svima (više noć – op.a.). Danas ćemo ga malo poboljšati. Prvo, naučimo kako napraviti provjeru valjanosti obrazaca u PHP-u i izvršimo neke sigurnosne manipulacije.

    Dakle, pogledajte kod ispod i zabilježite sljedeće promjene i sljedeće razloge za promjene. Sve nove retke sam označio bojom.

    Promijenjen je naziv polja obrasca. Možda ćete se zapitati – zašto nam, dovraga, ovo treba? Jednostavno je, odgovorit ću vam. Koliko ja znam, neki roboti za neželjenu poštu pretražuju stranice tražeći obrasce i ispunjavaju ih na temelju naziva tih polja. U teoriji, ako ne pronađu par, onda idu kući, što je ono što mi želimo. Naravno, ne mislim da je stupanj ove zaštite osobito velik, ali neće nam škoditi, a ako se neželjena pošta smanji za 1 slovo, to će biti dobro =).

    Provjera je li adresa e-pošte ispravno unesena. Linija 17 koristi elseif operator, koji će biti provjeren ako nam vrati pozitivan odgovor, odnosno kaže da email adresa uopće nedostaje, odnosno nije upisana. Ovdje koristimo funkciju preg_match, koja nam omogućuje usporedbu unesene adrese s regularni izraz. Možda ću kasnije ukratko pisati o regularnim izrazima, ali za sada je vrijedno znati da regularni izraz stvara neku vrstu predloška prema kojem se provjerava naš niz. A ako, u našem slučaju, unesena adresa ne odgovara izrazu, tada će se opet prikazati pogreška. Na primjer, evo još nekoliko regularnih izraza:
    |^[-a-âe\s\.,;:\?!]+$|i– ovaj regularni izraz omogućuje korištenje samo ruske abecede i nekih znakova kao što su razmak, točka, zarez itd.
    #http://[-a-z0-9_.]+[-a-z0-9_:@&?=+,.!/~*’%$]*\.(html?|php)#i– i ovaj izraz vam omogućuje da provjerite ispravnost pravopisa adrese na Internetu.

    Zatim koristimo else operator, gdje je već prebačen sav naš kod za slanje pisma. Možete sami kreirati pravila provjere u bilo kojoj količini, samo dodajte nova ako, na primjer, za provjeru adrese e-pošte, i bit ćete sretni.




    Kontakt osoba:



    Email za kontakt:



    Poruka:






    Ovo je način na koji možete provjeriti valjanost svojih PHP obrazaca bez pribjegavanja bilo čemu stranom. Sljedeći put u postu na temu formi, mislim da će se razmotriti validacija formi u jQueryju. U međuvremenu, čekam vaše komentare i želje. Laku noć i dobro jutro svima =).

    Ovo i sljedeća poglavlja pokazuju kako koristiti PHP za provjeru podataka obrazaca.

    Provjera valjanosti PHP obrazaca

    Mislite na SIGURNOST kada obrađujete PHP obrasce!

    Ove stranice pokazat će kako obraditi PHP obrasce imajući na umu sigurnost. Ispravna provjera podataka obrasca važna je za zaštitu vašeg obrasca od hakera i pošiljatelja neželjene pošte!

    HTML obrazac na kojem ćemo raditi u ovim poglavljima sadrži različita polja za unos: obavezna i izborna tekstualna polja, radio gumbe i gumb za slanje:

    Pravila provjere valjanosti za gornji obrazac su sljedeća:

    Pravila provjere valjanosti polja
    Ime Potreban. + Mora sadržavati samo slova i razmake
    E-mail Potreban. + Mora sadržavati valjanu adresu e-pošte (sa @ i .)
    Web stranica Neobavezno. Ako postoji, mora sadržavati važeći URL
    Komentar Neobavezno. Polje za unos s više redaka (textarea)
    Spol Potreban. Morate odabrati jedan

    Prvo ćemo pogledati običan HTML kod za obrazac:

    Tekstna polja

    Polja imena, e-pošte i web-stranice elementi su za unos teksta, a polje komentara je tekstualno područje. HTML kôd izgleda ovako:

    Ime:
    Email:
    Web stranica:
    Komentar:

    Radio gumbi

    Polja za spol su radio gumbi, a HTML kôd izgleda ovako:

    Spol:
    Žena
    Muški
    ostalo

    Element obrasca

    HTML kod obrasca izgleda ovako: