Webový formulář

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Webový formulář je v informatice označení pro speciální vstupní prvky zobrazitelné ve webovém prohlížeči, které umožňují uživateli odeslat data na webový server, kde jsou následně zpracována. Webové formuláře se podobají klasickým papírovým nebo databázovým formulářům - obsahují vstupní pole pro text, přepínače, vyskakovací menu i tlačítka. Formulář může být použit například pro odeslání dodací adresy, vyplněné objednávky nebo při vyhledání části textu na webové stránce.

Webové formuláře jsou definovány ve formálních programovacích jazycích jako HTML, Perl, PHP, Java, Javascript nebo . +moreNET (včetně ASP. NET). Implementace formulářů v těchto jazycích často automaticky využívá styly uživatelského rozhraní, jako jsou mřížky, minimalizuje programovací čas, náklady a rizika.

...

XHTML/HTML formuláře

Příklad formuláře vyrenderovaného v prohlížeči Mozilla Firefox. +more Formulář v XHTML nebo HTML je nejběžnější způsob online použití. Formulář může být vytvořen pomocí následujících prvků: * vstupní pole ** textové - jednoduché textové pole, které umožňuje vložit řádek textu (alternativou je heslo, kdy je místo jednotlivých znaků zobrazován nejčastěji symbol hvězdičky nebo puntíku) ** checkbox - dovoluje vybrat žádnou, jednu nebo více možností ** přepínač - dovoluje vybrat jednu možnost z více nabízených ** soubor - slouží pro odeslání souboru na server ** reset - slouží pro nastavení výchozích hodnot formuláře ** odeslat - vykoná akci přiřazenou formuláři (typicky odešle data na server) * textové pole - podobně jako textové vstupní pole, s tím rozdílem, že umožňuje vložit víceřádkový text * select - zobrazí roletkový seznam, ze kterého si může uživatel vybrat jednu možnost.

Na obrázku vpravo jsou zobrazeny následující elementy: * textbox pro zadání jména * dva radio buttony pro zvolení pohlaví * roletkový seznam pro výběr barvy očí * dva check boxy pro zatržení odpovídající vlastnosti * textové pole pro popsání atletických dovedností * tlačítko pro odeslání formuláře

XForms

XForm je alternativní standard navržený pro reprezentaci nové generace HTML/XHTML formulářů. Tento standard je dostatečně obecný, aby mohl být použitý samostatným způsobem nebo při prezentaci v jiných jazycích než HTML nebo XHTML. +more Na rozdíl od HTML/XHTML používá XForms návrhového vzoru Model-view-controller.

Xform dokument může být stejně jednoduchý jako HTML/XHTML formulář. Oproti nim však nabízí mnoho pokročilých vlastností. +more Formulář může například reagovat v reálném čase a získávat vkládané informace už během zobrazení formuláře, bez použití samostatných skriptovacích jazyků. Formulář může specifikovat jak mají být data ověřena, nebo jaké části formuláře se mohou měnit v závislosti na vložených datech v jiné části formuláře.

Standard XForms v současnosti není podporován v dostupných webových prohlížečích.

Kombinace se skriptovacími jazyky

Formuláře mohou být propojeny s různými skriptovacími jazyky, které umožňují vytvořit dynamické webové stránky.

Na straně klienta

Za standardní jazyk pro skriptování na straně klienta je de facto považován jazyk JavaScript. JavaScript využívá DOM, což umožňuje dynamické chování a změny webové stránky v prohlížeči.

Jelikož jsou možnosti jazyků pro skriptování na straně klienta v kombinaci s formuláři omezené, často slouží pro ověření správnosti dat ještě před odesláním na server. Také se používají k předzpracování dat před jejich předáním aplikaci na serveru (např. +more pro uložení do databáze).

Na straně serveru

Programy spouštěné na straně serveru mohou vykonávat širokou škálu příkazů za účelem vytvoření dynamických webových stránek - přes autentizaci přihlašovacích údajů (např. LDAP), načítání a ukládání dat v databázích, kontrolu pravopisu až po odesílání e-mailů). +more Některé skripty prováděné na straně serveru musí projít přes rozhraní CGI (Common Gateway Interface), aby mohly splnit požadovaný úkol.

Výhodou skriptování na straně serveru je přenesení funkcionality na jeden počítač (server) namísto spoléhání na různé implementace stejných funkcí v mnoha webových prohlížečích.

Běžně jsou aplikace používané na webových stránkách psané ve skriptovacích jazycích. Je ale také možné použít kompilované jazyky.

Některé z běžně používaných skriptovacích jazyků: * PHP * Perl * ASP * ASP. +moreNET * Adobe ColdFusion * JSP * Ruby on Rails.

Některé z běžně používaných kompilovaných jazyků: * Jazyk C * C++ * C# * Java

PHP

PHP je jeden z nejběžněji používaných jazyků pro psaní webových aplikací na straně serveru a je jeden z mála jazyků určených právě pro serverové aplikace.

PHP skript může: * zobrazit informace na jiné stránce (např. uživatel vloží jméno a to se následně zobrazí na webové stránce) * sloužit jako přihlašovací rozhraní * uložit data do databáze (např. +more MySQL, ASCII soubor a další) * uložit informace o uživatelově počítači v HTTP cookie * vygenerovat e-mail na základě vložených dat, včetně připojení přílohy.

Hodnota atributu action určuje soubor, který zpracuje odeslaná data. Cílový PHP soubor obdrží data pomocí metody POST nebo GET. +more V příkladu je ukázán jednoduchý formulář, který předá uživatelské jméno pomocí metody GET.

form.html

Uživatelské jméno:

form_handler.php

Ve výše uvedeném skriptu je nutné použít příkaz $_GET[

] nebo $_POST[

] podle toho, která metoda byla použita ve formuláři, zatímco $_REQUEST[

] je možné použít pro obě metody. Hodnota atributu input name="" HTML formuláře musí být shodná s hodnotou indexu $GET[

].

Formuláře a bezpečnost

Pomocí neošetřených vstupů ve formulářích lze provádět útoky na webové stránky. Patří mezi ně Cross-site scripting (XSS) a SQL injection.

Cross-site scripting

Jedná se o vložení části škodlivého kódu do napadené stránky. V případě, kdy není ošetřen vstup formuláře, je možné odeslat speciální znaky (např. +more < a >). Pokud je takovýto text následně vypsán na webové stránce, považuje ho prohlížeč za součást html kódu a vykreslí ho do výsledné stránky. Proto je nutné takovéto znaky zaměnit za správné html entity (např. < za &lt;).

SQL injection

Tento typ útoku se zaměřuje na databáze. Pokud není ošetřen vstup formuláře, pomocí kterého se odesílají data do databáze, je možné odeslat místo předpokládaného vstupu, část SQL příkazu. +more Pokud je tato část příkazu vhodně sestavena může být při následném odeslání pochopena databází jako součást původního příkazu. Databáze pak může provést zcela jinou akci než původně programátor zamýšlel. Pomocí tohoto útoku se dá například získat přístup k datům v databázi nebo ji úplně vymazat.

Reference

Související články

CAPTCHA * LAMP

Externí odkazy

[url=http://www. w3. +moreorg/TR/html4/interact/forms. html]Forms in HTML documents[/url], the W3C's spec page for forms in HTML 4. * [url=http://en. wikibooks. org/wiki/HyperText_Markup_Language/Forms]Wikibooks: HyperText Markup Language/Forms[/url].

Kategorie:World Wide Web Kategorie:HTML

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top