28. 6. 2006 v sekci webdesign:

Proč neomezovat formuláře

Jednou za čas jsem donucen vyplnit na webu nějaký ten formulář – např. když registruju odkazy webů svých zákazníků do katalogů. A naprosto pravidelně narážím na neschopnost programátorů, kteří si zřejmě chtěli ulehčit práci.

Některé pole mají omezený počet znaků. Chápu to např. v případě titulku odkazu, který má v některých případech omezení na řekněme 40 znaků. Tam je velmi užitečné vidět, že už jsem přestřelil a název je nutno zkrátit. Ale proč omezovat údaje ryze číselné? (ičo, telefon apod.)

Většinu údajů přetahuju přímo ze stránek zákazníků, a když mi katalog usekne ičo jen proto, že v něm mám navíc dvě mezery, tak mě to pravidelně nasírá :-). Proč si správnost údaje programátoři nezkontrolují až na serveru? Stejně musí všechny pole ověřit, aby jim tam lidé nezadávali totální kraviny a ořezat mezery je otázkou jednoho řádku kódu navíc.

Zatím jsem se s touto použitelnostní chybkou setkal jen u velkých ryb, malým je většinou počet znaků naprosto šumák.

Komentáře

28. 06. 06, 11.18

Souhlas, zčásti omluvitelné by to snad bylo jen tehdy, pokud by u pole s tím IČ byl aspoň vzor. Ale to se stává jen málo.

2. Leo
28. 06. 06, 11.39

„Proč si správnost údaje programátoři nezkontrolují až na serveru? Stejně musí všechny pole ověřit, aby jim tam lidé nezadávali totální kraviny a ořezat mezery je otázkou jednoho řádku kódu navíc.“

Na serveru kontrola byt musi, v klientovi muze (v JS, uzivatel oceni) – ale rikam kontrola, tedy omezeni az pri odeslani, ne omezeni uz behem psani. Nastavovat delku je fakt blbost. Leo

28. 06. 06, 11.40

Také se přidávám, je to snad ještě horší, než příliš malá formulářová pole, ve kterých se vám nevejde ani email.

4. Jan Renner
28. 06. 06, 12.02

Je to tak, zejména pole pro PSČ omezená na 5 znaků nerozdýchávám.

5. JR
28. 06. 06, 15.31

Ještě lepší je, když po vyplnění a odeslání nechutného formuláře nám formulář samozřejmě ohlásí chybu, protože programátoři uvažují jinak a ejhle – vyplněná data smazaná, formulář neodeslaný.. všichni známe

6. dgx
28. 06. 06, 17.26

Asi tak, na serveru kontrola na maximální délku být musí, jinak SQL příkaz skončí chybou (tady hodně bacha na kódování UTF). Taktéž není špatné tento limit promítnout do HTML, třeba v podobě atributu maxlength u políček INPUT, aby nedošlo k oříznutí důležitých dat.

Tedy omezovat je nutné – ale určování limitů musí být velmi velkorysé.

Mimochodem, IČ a telefon nejsou číselné údaje (IČ i telefon mohou začínat nulama, telefon může obsahovat + nebo nějaký oddělovač)

28. 06. 06, 20.49

Jo, na tohle chování justice.cz si stěžuje snad každý…

8. Petr
28. 06. 06, 21.53

[6]ICO ale prece nazacina nulama ;)

9. gwh
29. 06. 06, 07.42

Já si na tyhle případy osvojil jistou metodu. Do atributu maxlength nastavím maximální délku řetězce v databázi (typicky 255 znaků) a na serveru jej ořezávám o whitespace apod.