Prosleđivanje vrednosti preko GET i POST
Kada krenete da pišete skripte u PHP, postavlja se pitanje kako proslediti neke vrednosti na drugu stranicu (tačnije drugi skript). Za to se koriste globalne promenljive GET i POST, a ono što ih razlikuje je mesto primene, način na koji browser vidi ove promenljive, i maksimalnoj količini podataka koje mogu da prime.
GET
Vrednosti koje se nalaze u GET nizu dolaze iz URL-a. URL (skraćenica od Uniform Resource Locator) predstavlja putanju koja se ukucava u browseru da bi došli na određenu internet lokaciju. Ukratko ću objasniti šta je URL, tj. iz kojih delova se sastoji.
Jedan tipičan URL izgleda recimo ovako: http://www.neki-domen.com/putanja/fajl.php?id=77&bla=bla
Ovaj URL se sastoji iz nekoliko celina:
- http (Hypertext Transfer Protocol) je protokol kojim se prenose podaci između browsera i servera, često ćete naići i na https (Hypertext Transfer Protocol Secure) koji si koristi kod banaka i ostalih vrsta sajtova gde je kritična bezbednost podataka koji se prenose, primer su recimo web-mail serveri tipa Google Mail, i slični.
- www.neki-domen.com je naziv servera na kom je smešten neki sajt
- putanja/fajl.php skript koji se izvršava
- id=77&bla=bla je upit, i ovaj deo nam je trenutno najzanimljiviji, jer se on smešta u GET niz. Taj niz bi izgledao ovako
$_GET['id'] = ’77′
$_GET['bla'] = ‘bla’
Znači sve što se nalazi iza znaka ? (znak pitanja) u URL se automatski prebacuje u $_GET niz, a pojedinačni ključevi se razdvajaju sa &. Ograničenja koja postoje kod URL, zavise od browsera i verzije browsera, a odnosi se na maksimalnu dužinu URL, koja je trenutno 2048 karaktera, koliko podržava Internet Explorer 6. Na lokaciji http://www.boutell.com/newfaq/misc/urllength.html možete naći test u kojem je prikazano koliko koji browser i server mogu da proslede podataka putem URL-a.
URL se može napraviti na dva načina iz vašeg koda. Prvi je direktno iz vaše PHP aplikacije izvršavanjem sledeće linije koda
header('Location: www.zmajevognezdo.com');
Naravno, umesto ove adrese možete staviti bilo koju, i ne samo adresu nego i celu putanju do nekog fajla, sa svim paramterim koji su potrebni.
Drugi način za prosleđivanje podataka u GET niz je iz forme. Ispod imamo primer jedne proste forme za pretragu, kakvu možete videti na mnogim sajtovima.
<form action="/trazi.php" method="get">
<p>
Unesite traženi pojam: <input type="text" name="pojam" value="" />
<input type="submit" value="Traži" />
</p>
</form>
Kada ukucate neki tekst u polje za unos i kliknete na dugme “Traži”. browser će otići na lokaciju koja se nalazi u atributu “action” od form taga. Tako će se u adresnoj liniji vašeg browsera pojaviti tekst koji izgleda ovako
http://www.neki-domen.com/trazi.php?pojam=trazim+nesto+slatko
POST
Ova promenljiva može dobiti vrednosti samo putem forme. Forma se razlikuje samo po atributu method koji ima vrednost post.
<form action="/trazi.php" method="post">
<p>
Unesite traženi pojam:
<input type="text" name="pojam" value="" />
<input type="submit" value="Traži" />
</p>
</form>
Posle klika na dugme “Traži”, bićete prebačeni na stranicu trazi.php, i URL u adresnoj liniji će izgledati ovako:
http://www.neki-domen.com/trazi.php
Promenljivoj pojam pristupate preko $_POST['pojam'].
Još jedna bitna stvar vezana za forme i POST metod, je ta da se ovako mogu prenositi i fajlovi, znači vršiti upload na server. Ova tema je sama za sebe dovoljna za novi tekst, pa je neću sad obrađivati, ali je možete očekivati uskoro.
Sigurnost
Ono što je bitno napomenuti je ispravnost podataka. Nikad ne uzimajte podatke kao da su skroz ispravni. Obavezno ih proverite, znači ako negde očekujete broj ispitajte da li je to broj, da neko slučajno nije uneo slova. Ako su u pitanju slova, proverite koja, npr dozvolite unos samo velikih, malih slova, brojeva i osnovne interpunkcije – tačka, zarez, crta, znak uzvika i znak pitanja. Posto još ovakvih vrsta provera, bitno je da ste svesni problema koji mogu da nastanu ako se ne radi nikakva kontrola.
Postoje korisnici koji će probati da podmetnu razne podatke i na taj način ugroze funkcionisanje aplikacije, što je manji problem, i sigurnost vaših popdataka, što je veći problem. Zamislite da neko uspe da dođe do šifri korisnika, ili bilo kojih drugih ličnih podataka.
Na stranici phpsec.org imate uputstvo na srpskom u HTML i PDF, koje se bavi bezbednošću i načinima zaštite vaših podataka.






