Velmi často je nutné přenést data z klientského prohlížeče do souboru serveru se skriptem pro zpracování těchto dat. Podívejme se, jak přesně uspořádat přenos parametrů php do skriptu.
Je to nutné
Základní znalost jazyků PHP a HTML
Instrukce
Krok 1
K přenosu dat z webových formulářů v protokolu HTTP (HyperText Transfer Protocol) jsou k dispozici dvě metody - GET a POST. Liší se způsobem, jakým jsou přenášeny z klientské aplikace (prohlížeče) do serverové aplikace (spustitelný php skript). Metoda GET k tomu používá adresní řádek. To znamená, že názvy a hodnoty proměnných, které mu byly předány, jsou připojeny přímo k adrese skriptu (nebo URL - Uniform Resource Locator) prostřednictvím otazníku (?). Například adresa URL může vypadat takto:
Tady je skriptu search.php předána proměnná s názvem num s hodnotou 30, proměnná newwindow s hodnotou 1 a proměnná safe s hodnotou off. Po obdržení takového požadavku serverem „?“odděluje adresu souboru a rozděluje vše ostatní do dvojic jmen a hodnot proměnných. Výsledné páry jsou vyplněny v poli $ _GET, ze kterého je bude moci php skript uvedený v adrese extrahovat. Ve své nejjednodušší podobě může html kód formuláře pro odesílání těchto dat z prohlížeče na server pomocí metody GET vypadat takto:
A nejjednodušší php skript pro příjem těchto dat je takový:
<? php
$ num = $ _GET ['num'];
$ newwindow = $ _GET ['newwindow'];
$ safe = $ _GET ['safe'];
?>
Nejvýznamnější nevýhody předávání proměnných pomocí metody GET:
- omezené množství dat, protože délka URL nesmí přesáhnout 255 znaků;
- touto metodou nelze přenést všechny znaky html kódu;
- přenášené údaje jsou uživateli viditelné, což není z bezpečnostního hlediska vždy přijatelné;
Krok 2
Těmto nepříjemnostem a omezením lze zabránit použitím jiné metody - POST. K přenosu datových hlaviček používá speciální oblasti síťových paketů. Ve všech ostatních ohledech jsou rozdíly mezi těmito metodami minimální - ve výše uvedené formě odesílání dat se změní pouze název metody:
A ve skriptu php pouze název datového pole:
<? php
$ num = $ _POST ['num'];
$ newwindow = $ _POST ['newwindow'];
$ safe = $ _POST ['safe'];
?>