Zelo pogosto je treba podatke iz brskalnika odjemalca prenesti v strežniško datoteko s skriptom za obdelavo teh podatkov. Poglejmo natančno, kako organizirati prenos parametrov php v skript.
Potrebno je
Osnovno znanje jezikov PHP in HTML
Navodila
Korak 1
Za prenos podatkov iz spletnih obrazcev v protokolu HTTP (HyperText Transfer Protocol) sta na voljo dva načina - GET in POST. Razlikujejo se po načinu prenosa iz odjemalske aplikacije (brskalnik) v strežniško aplikacijo (izvršljivi php skript). Metoda GET za to uporablja naslovno vrstico. To pomeni, da so imena in vrednosti spremenljivk, ki so ji posredovane, neposredno dodana naslovu skripta (ali URL - Uniform Resource Locator) z vprašajem (?). URL je na primer lahko videti tako:
Tu se skriptu search.php posreduje spremenljivka z imenom num z vrednostjo 30, spremenljivka newwindow z vrednostjo 1 in spremenljivka safe z vrednostjo off. Strežnik, ki je prejel tako zahtevo, s "?" loči naslov datoteke, vse ostalo pa razdeli na pare imen in vrednosti spremenljivk. Nastali pari se zapolnijo v matriki $ _GET, iz katere jih bo lahko izvlekel php skript, naveden v naslovu. V najpreprostejši obliki je lahko oblika html koda za pošiljanje teh podatkov iz brskalnika na strežnik z metodo GET videti tako:
In najpreprostejši php skript za prejemanje teh podatkov je tak:
<? php
$ num = $ _GET ['num'];
$ novo okno = $ _GET ['novo okno'];
$ safe = $ _GET ['safe'];
?>
Najpomembnejše slabosti prenosa spremenljivk z metodo GET:
- omejena količina podatkov, saj dolžina URL-ja ne sme presegati 255 znakov;
- s to metodo ni mogoče prenesti vseh znakov html-kode;
- poslani podatki so uporabniku vidni, kar z varnostnega vidika ni vedno sprejemljivo;
2. korak
Tem neprijetnostim in omejitvam se je mogoče izogniti z drugo metodo - POST. Za prenos naslovov podatkov uporablja posebna področja omrežnih paketov. V vseh drugih pogledih so razlike med temi metodami minimalne - v zgornji obliki pošiljanja podatkov se bo spremenilo samo ime metode:
In v skriptu php samo ime matrike podatkov:
<? php
$ num = $ _POST ['num'];
$ novo okno = $ _POST ['novo okno'];
$ safe = $ _POST ['safe'];
?>