Reklama

zonerbooks.cz | zoner.cz | czechia.com | regzone.cz | inshop.cz | inmail.cz | zonerpress.cz | zonerantivirus.com | zonerama.cz

interval.cz

Webové formuláře 2009 - co od nich vyžadovat? Ošetření chyb.

12. 08. 2009 | Pavel Růžička | Ostatní | Komentáře: 4

Jakkoli nám dnes do webových aplikací pronikají různé AJAXy, jQuery a SilverLighty - poctivým základem aplikace je ještě stále formulář. V pokračování předchozího článku se zaměříme na formuláře spolehlivé, formuláře, které předcházejí chybám a umožňují uživateli chybu snadno napravit.

Prevence chyb

Pro aplikace, z nichž vyplývají právní důsledky, stránky, umožňující provádět finanční transakce, stránky umožňující modifikaci nebo mazání uživatelských dat uložených v systémech pro uchovávání dat nebo pro stránky, pomocí nichž se odesílají odpovědi na testové otázky, platí alespoň jeden z následujících bodů:

Zrušitelnost

Akce uživatele lze vrátit zpět.

Kontrola dat

Data zadaná uživatelem jsou zkontrolována na chyby a uživatel má možnost chyby opravit.

Potvrzení

Je dostupný mechanismus umožňující zkontrolování, potvrzení a opravení informací před dokončením zadávání.

Povinné položky, položky vyžadující speciální formát

Povinná položka formuláře musí být označena symbolem *, vyznačeným jako superscript s atributem title, který bude zároveň obsahovat textovou informaci o tom, že se jedná o povinnou položku (<sup title=”povinná položka“>*</sup>). Na začátku formuláře pak musí být informace o tom, že položky označené symbolem * jsou povinné.

Upozornění na vyžadovaný formát položky musí být v textové podobě, ideálně umístěné před prvkem a jako součást jeho popisku (<label  >).

Formulář drží svůj obsah

Formulář, který není při odeslání zpracován, musí podržet svůj obsah – nikdy nesmí dojít k vyprázdnění toho, co uživatel vyplnil

Tlačítko Reset

vynechejte tlačítko Reset (Vymazat), nemá žádné opodstatnění , maximálně zmate uživatele, protože netuší, co všechno se mu může vymazat.

Validace, Identifikace chyby

Je-li zjištěna při validaci vstupu chyba (na klientské a/nebo serverové straně) je potřeba toto uživateli sdělit intuitivní, efektivní a použitelnou cestou.

Chyba musí být jasně identifikovatelná, měl by být zajištěn snadný přístup k chybnému prvku, prvku může být nastaven focus.

Uživatel musí mít možnost chybu snadno opravit a odeslat formulář znovu

Chyby vztahující se k celému formuláři musí být umístěny nad formulářem.

Chyby vztahující se k jednotlivým prvkům formuláře musí být umístěny hned vedle prvku, nejlépe napravo od něj, nebo nad ním.

Specifické validátory

Zde jsou některé často používané validace ve formě regulárních výrazů.

E-mail:

^[\w-\.]+@\w+([-.]\w+)*\.\w+([-.]\w+)*$

URL:

^(http|https|mailto|callto|ftp):\/\/[a-zA-Z0-9\.\-]+\.[a-zA-Z0-9]{2,4}(:\d{1,6})?\/{1}[-_:~&=#\?\.a-zA-Z0-9\/]*$

MSISDN v národním tvaru:

^[67]\d{8}$

Telefonní číslo zadávané písmeny:

^[+0-9 A-Z]{6,16}$

PSČ (zip code):

^[- 0-9]{5,10}$

Uživatel v doméně Active Directory:

^[a-zA-Z0-9_\-]{3,128}\\{1}[a-zA-Z0-9_\-]{3,128}$

IČ, rodné číslo: Toto je také hodnota, kterou je potřeba často validovat - jednoduchý regulární výraz kvůli neexistuje, algoritmus je komplikovanější, dovolím si zde proto odkázat na článek Jak ověřit platné IČ a rodné číslo.

Doporučení nápravy chyby

Je-li zjištěna chyba (na klientské či serverové straně), zajistěte doporučení, jak chybu napravit. Výjimku tvoří případ, kdy je takový postup v rozporu s bezpečností nebo účelem obsahu.

Závěr článku

Máte nějaké své osvědčené validátory nebo další postupy jak předcházet chybám ve formulářích? Napište je prosím do komentářů :)


Další aktuální články na interval.cz

Tematicky související články

Dejte vědět i ostatním o článku

Komentáře ke článku

Přidat nový komentář

Jakub Vrána

Autor komentáře: Jakub Vrána

Datum vložení: 17. Srpen 2009, 15:27:51

Regulární výrazy pro kontrolu e-mailové a URL adresy jsou špatně. Jednak jsou příliš přísné (e-mailová adresa např. nedovoluje poměrně běžné podtržítko, URL zase zakazuje doménu .museum a vyžaduje koncové lomítko za samotnou doménou) a jednak příliš tolerantní (např. dovolují dvě tečky za sebou nebo šesticiferný port). Regulární výraz pro kontrolu e-mailu je k dispozici na http://php.vrana.cz/kontrola-e-mailove-adresy.php

Karel Koupil

Autor komentáře: Karel Koupil

Datum vložení: 21. Srpen 2009, 21:03:22

Souhlasím s tím, co psal Jakub Vrána. Zajímavou možností je dále doplnění nápovědy po vyplnění políčka, jako to dělá třeba twitter při registraci.

Carlos

Autor komentáře: Carlos

Datum vložení: 05. Září 2009, 00:39:08

Na kontrolu psč (zip) používám funkci:
function check_zipcode( $zip_string, $length = 5 ) {
global $chyba;

if( $zip_string == NULL || !is_int( $length ) ) {
$chyba .= "Musíte zadat PSČ.\n";
return $chyba;
}

if (!is_numeric($zip_string)) {
$chyba .= "PSČ má pouze číslenou hodnotu!\n";
return $chyba;
}

$chars = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$zip_string = trim( $zip_string );

for( $i = 0; $i < strlen( $zip_string ); $i++ ) {
if( !in_array( $zip_string[ $i ], $chars ) && ord(" ") != ord( $zip_string[ $i ] ) )
return ;
}

if( $length == 0 )
return 1;
$zip_string = str_replace(' ', '', $zip_string );

$chyba = "PSČ má 5 čísel\n";
return ( strlen( $zip_string ) != $length ? $chyba : $zip_string );
}

Carlos

Autor komentáře: Carlos

Datum vložení: 05. Září 2009, 00:39:49

function check_zipcode( $zip_string, $length = 5 ) {
global $chyba;

if( $zip_string == NULL || !is_int( $length ) ) {
$chyba .= "Musíte zadat PSČ.\n";
return $chyba;
}

if (!is_numeric($zip_string)) {
$chyba .= "PSČ má pouze číslenou hodnotu!\n";
return $chyba;
}

$chars = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$zip_string = trim( $zip_string );

for( $i = 0; $i < strlen( $zip_string ); $i++ ) {
if( !in_array( $zip_string[ $i ], $chars ) && ord(" ") != ord( $zip_string[ $i ] ) )
return ;
}

if( $length == 0 )
return 1;
$zip_string = str_replace(' ', '', $zip_string );

$chyba = "PSČ má 5 čísel\n";
return ( strlen( $zip_string ) != $length ? $chyba : $zip_string );
}

Zpět na začátek komentářů | Zpět na začátek článku

Přidat nový komentář

Jméno a e-mail jsou nepovinné. Příspěvky obsahující odkaz jsou moderovány.

Zoner AntiVirus Free pro Android
zabezpečte si svůj smartphone, zdarma
Profesionální eshop Zoner inShop od 990 Kč.
Zoner Photo Studio 14 – vyzkoušejte ZDARMA
Reklama
Reklama

Syndikace

hledáme nové autory | redakce interval.cz | reklama na interval.cz

© ZONER software, a.s., všechna práva vyhrazena, interval.cz dodržuje právní předpisy o ochraně osobních údajů. Powered by WordPress.