Blog
Testiranje kontakt forme: kontrolna lista pre lansiranja
· 3 min čitanja
Pokvarena kontakt forma je najgora vrsta bug-a: ne pokreće nikakva upozorenja, ne kvari raspored, i najavljuje se samo tišinom — koja izgleda tačno kao „niko se ne javlja”. Sajtovi su nedeljama radili sa mrtvom formom dok su svi mislili da je posao samo usporen. Petnaest minuta pre lansiranja sprečava sve to.
1. Osnovni tok — sa pravog sajta
Pošaljite pravi test sa produkcionog URL-a, ne sa localhost-a. Samo ovaj test proverava ono što lokalno testiranje ne može: DNS, TLS, i pre svega CORS — ako vaš bekend za forme koristi listu dozvoljenih origina (a trebalo bi), produkcija je jedino mesto gde ćete otkriti da domen nije na njoj. Testirajte i www i osnovni (apex) domen ako služite oba.
Proverite sva tri kraja: stanje uspeha se prikazuje u pregledaču, unos se pojavljuje na kontrolnoj tabli, a obaveštenje (push ili imejl) zaista stiže na uređaj koji ćete stvarno nositi sa sobom.
2. Validacija — pokušajte da je slomite
- Pošaljite prazno. Svako
requiredpolje treba da se pobuni, na pravom mestu, na jeziku koji odgovara sajtu (srpski sajt sa podrazumevanim engleskim porukama pregledača je klasičan previd — postavite prilagođene poruke ako je to bitno). - Pošaljite
not-an-emailu polje za imejl. - Nalepite zaista dugačku poruku — 5.000 karaktera — i proverite da li se prihvata, ili elegantno otkazuje uz jasan limit, a ne tiho odseca.
- Ako imate polje za fajl: pravi tip, pogrešan tip, i fajl koji je prevelik. Onaj prevelik treba da otkaže uz poruku, idealno pre nego što se završi spor upload.
3. Put otkazivanja — test koji svi preskaču
Privremeno usmerite formu na besmislen endpoint (ili blokirajte zahtev u devtools-u) i pošaljite. Šta posetilac vidi? Neprihvatljiv odgovor je „ništa” — dugme koje ništa ne radi, ili spinner koji se vrti zauvek. Treba da postoji stanje greške sa rezervnom opcijom („ili nam pišite na …”). To je stanje na koje vaši pravi korisnici nailaze tokom ispada ili neuspelog deploya, i to je razlika između izgubljenog i spasenog potencijalnog klijenta. Proverite odgovore na greške vašeg bekenda kako bi vaše rukovanje odgovaralo onome što on zaista vraća.
4. Odbrana od spama — potvrdite da su uključene, i da nisu previše
- Honeypot: popunite skriveno polje preko devtools-a i pošaljite — treba da bude tiho progutano, i da se nikad ne pojavi na kontrolnoj tabli.
- Ograničenje zahteva: pošaljite nekoliko puta brzo; proverite da li se ograničavanje aktivira i da li je limit dovoljno velikodušan za legitimnu ispravku-i-ponovno-slanje.
- Turnstile (ako je uključen): testirajte u običnom prozoru i u privatnom; proverite da li put otkazivanja tokena prikazuje poruku razumljivu čoveku.
(Kako svaki sloj funkcioniše: zaštita kontakt forme od spama.)
5. Mobilni, tastatura, i ostatak koji nije glamurozan
- Potpuno slanje sa pravog telefona: ispravne tastature (
type="email"prizove tastaturu sa @), dugme koje je lako dodirnuti, vidljivo stanje uspeha bez pretraživanja skrolovanjem. - Prolaz samo tastaturom: razuman redosled tabulacije, Enter šalje formu, stanja fokusa vidljiva — a Tab treba da preskoči honeypot (ako na njega sleti, dodajte
tabindex="-1"). - Automatsko popunjavanje: pustite pregledač da popuni formu; proverite da li se polja mapiraju smisleno.
- Preusmeravanje na stranicu zahvalnosti, ako postoji, uspešno se razrešava i nije blokirano validacijom preusmeravanja na bekendu.
6. Ostavite kanarinca
Posle lansiranja, šaljite sebi jedan pravi unos mesečno — podsetnik u kalendaru, trideset sekundi. Deployevi, promene DNS-a i istekli ključevi se dešavaju stalno; kanarinac otkriva tihi otkaz pre nego što to učine dve nedelje „usporenog posla”.
Ukupno vreme: oko petnaest minuta pri lansiranju, trideset sekundi mesečno posle. Najjeftinije osiguranje u veb razvoju.
Funkcionalna forma u jednoj liniji
Hostovano u EU, unosi se čuvaju zauvek, push obaveštenja na svakom paketu.
Počnite besplatnoBez kreditne kartice · pročitajte dokumentaciju
Nastavite čitanje
- Spam kontakt formi: honeypot, ograničenje zahteva i TurnstileKako spam u formama funkcioniše i tri sloja koji ga zaustavljaju: honeypot, ograničenje zahteva i Cloudflare Turnstile — bez kažnjavanja pravih posetilaca.
- Mailto linkovi protiv kontakt formi: ko gubi manje klijenata?Mailto linkovi tiho ne uspevaju bez podešenog mejl klijenta i izlažu adresu spam botovima. Kada je mailto u redu, a kada se isplati kontakt forma.
- Migracija sa Formspree na Formhook: vodič za deset minutaPromena form backend-a je izmena jedne linije koda. Migracija sa Formspree na Formhook za deset minuta: izvoz podataka, zamena endpointa i zaštita od spama.