Veľmi často je nevyhnutné preniesť údaje z klientskeho prehľadávača do súboru na serveri pomocou skriptu na spracovanie týchto údajov. Pozrime sa, ako presne organizovať prenos parametrov php do skriptu.
Je to nevyhnutné
Základné znalosti jazykov PHP a HTML
Inštrukcie
Krok 1
Na prenos údajov z webových formulárov v protokole HTTP (HyperText Transfer Protocol) sú k dispozícii dve metódy - GET a POST. Líšia sa spôsobom prenosu z klientskej aplikácie (prehliadača) do serverovej aplikácie (spustiteľný php skript). Metóda GET na to používa panel s adresou. To znamená, že názvy a hodnoty premenných, ktoré sa mu odovzdávajú, sú pripojené priamo k adrese skriptu (alebo URL - Uniform Resource Locator) prostredníctvom otáznika (?). Napríklad adresa URL môže vyzerať takto:
Tu sa skriptu search.php odovzdá premenná s názvom num s hodnotou 30, premenná newwindow s hodnotou 1 a premenná safe s hodnotou off. Po prijatí takejto žiadosti serverom „?“oddelí adresu súboru a všetko ostatné rozdelí do párov mien a hodnôt premenných. Výsledné páry sa vyplnia do poľa $ _GET, z ktorého ich bude môcť php skript uvedený v adrese extrahovať. V najjednoduchšej podobe môže html kód formulára na odosielanie týchto údajov z prehľadávača na server pomocou metódy GET vyzerať takto:
A najjednoduchší skript php na príjem týchto údajov je taký:
<? php
$ num = $ _GET ['num'];
$ newwindow = $ _GET ['newwindow'];
$ safe = $ _GET ['safe'];
?>
Najvýznamnejšie nevýhody odovzdávania premenných pomocou metódy GET:
- obmedzené množstvo údajov, pretože dĺžka adresy URL nemôže presiahnuť 255 znakov;
- touto metódou nie je možné preniesť všetky znaky html kódu;
- prenesené údaje sú pre používateľa viditeľné, čo nie je z bezpečnostného hľadiska vždy prijateľné;
Krok 2
Týmto nepríjemnostiam a obmedzeniam sa dá vyhnúť použitím inej metódy - POST. Na prenos dátových hlavičiek využíva špeciálne oblasti sieťových paketov. Vo všetkých ostatných ohľadoch sú rozdiely medzi týmito metódami minimálne - vo vyššie uvedenej forme odosielania údajov sa zmení iba názov metódy:
A v skripte php iba názov dátového poľa:
<? php
$ num = $ _POST ['num'];
$ newwindow = $ _POST ['newwindow'];
$ safe = $ _POST ['safe'];
?>