Odosielanie formulárov

Pre každý odosielaný formulár je treba presne určiť, akou metódou majú byť dáta odoslané. Pokiaľ žiadnu metódu neurčíte vždy budú dáta odosielané prednastavenou (implicitnou) metódou GET. Metódu prenosu určíte v parametri METHOD tágu FORM. Najčastejšie sa využívajú nasledujúce metódy:

  • HEAD – slúži výlučne na získavanie informácie o dokumente, nie jeho obsah.
  • GET – prednastavená (implicitná) metóda. Všetky zadané dáta formulára pridáva k reťazci požiadaviek (URL)
  • POST – dáta sú odosielaná opäť, ako súčasť tela (HTTP), ale nie sú súčasťou URL, ako v metóde GET. Metóda POST umožňuje posielať väčšie množstvo dát než metóda GET . Ďalšou dôležitou odlišnosťou je, že POST vždy odosiela požiadavku serveru a nehľadá možnú odpoveď vo vyrovnávacej pamäti. Z tohto dôvodu je metóda POST oproti GET omnoho pomalšia, ale zato bude obsahovať zaručene aktuálnu odpoveď.

 

Metóda GET a tvar URL

Ako bolo už uvedené všetky dáta pri tejto metóde sú  vložené do reťazca požiadaviek. Dáta sú teda viditeľné, ako ktorákoľvek iná časť URL, preto nie je vhodné používať túto metódu v prípade chúlostivých dát, ako sú heslá, čísla účtov a podobne.

Pri tejto metóde si treba premyslieť, či nebude vadiť prípadná neaktuálnosť odpovede. Pokiaľ totiž vo vyrovnávacej pamäti ostane starší výsledok pre rovnaké hodnoty URL môžu byť tieto výsledky zobrazené bez skutočného dotazu na server. Ďalšou nevýhodou je obmedzené množstvo dát, ktoré ide pripojiť za požadovanú adresu.

Tu vidíte príklad URL formulára odoslaného metódou GET.

Prvá časť http://localhost určuje webový server, ktorý má spracovať požiadavku. test je názov zložky, v ktorej je uložený súbor s formulárom v našom prípade get.php. Znak ? oddeľuje cestu súboru od pripojiteľných dát. Dáta sú k URL pripájané v pároch kľuč=hodnota oddelených &. Ďalšie znaky, ktoré sa v URL často objavujú sú znaky + a #. Znak + nahradzuje medzery a znak # sa používa ako odkaz na určité miesto dokumentu.

Metóda POST

Metóda GET, je vhodná pre akcie, ktoré nemenia stav servera, iba zobrazujú informácie. Ak by sme ju použili napr. na uloženie hlasu do ankety, pri každej návšteve našich stránok indexovacím robotom (napr. Googlebotom) by sa zaznamenal nový hlas. Aj preto existuje metóda POST. Medzi nevýhody GET-u patrí tiež obmedzená dĺžka parametrov.

Metódu POST použijeme jednoducho – zmeníme atribút METHOD formulára. Dáta tu nie sú ukladané do adresy. Pristupujeme k nim pomocou poľa $_POST.