Învăţăm PHP: Despre $_GET


Vă amintiţi când am vorbit despre variabile? Există câteva mai speciale, nu utile ci foarte-foarte utile. Cu $_GET de exemplu accesăm variabilele transmise în adresa unei pagini. Deschide noi orizonturi!!! Sunt sigur că aţi văzut des (priviţi orice căutare pe Google de exemplu) că o adresă este urmată de semnul întrebării, după care vin diverse variabile iniţializate cu = şi separate cu &. O căutare pe Google poate avea o adresă gen:

http://www.google.ro/search?sourceid=chrome&ie=UTF-8&q=calculator

ceea ce înseamnă că pagina de căutare primeşte trei variabile: „sourceid”, cu valoarea Chrome (ca statistic motorul de căutare să ştie de unde vin căutările), „ie” cu valoarea UTF-8 (encodingul folosit) şi cel mai important este „q”, de la query (interogare), care oferă textul efectiv de căutat. Cum putem obţine în scriptul nostru PHP valorile variabilelor? Simplu: cu $_GET[‘numele_variabilei’]

[PHP]$capitol = $_GET[‘capitol’];
switch($capitol){
case 1:
echo ‘

Capitolul I

‘;
echo ‘

Animalele sunt…

‘;
echo ‘

‘;
echo ‘

Inapoi la cuprins

‘;
break;
case 2:
echo ‘

Capitolul II

‘;
echo ‘

Pasarile sunt…

‘;
echo ‘

‘;
echo ‘

Inapoi la cuprins

‘;
break;
case 3:
echo ‘

Capitolul III

‘;
echo ‘

Pestii sunt…

‘;
echo ‘

‘;
echo ‘

Inapoi la cuprins

‘;
break;
default:
echo ‘

SUMAR

‘;
echo ‘Capitolul I
‘;
echo ‘Capitolul II
‘;
echo ‘Capitolul IIII
‘;
}[/PHP]

Codul de mai sus îl vedeţi în acţiune aici. Ce am făcut? În prima linie am căutat să vedem ce capitol dorim să încărcăm. Dacă nu există nici unul… nici o problemă. Pe structura SWITCH folosită mai apoi se va merge pe ramura DEFAULT. Dacă este indicat vreun capitol el va fi 1, 2 sau 3, după cum utilizatorul a dat click în cuprins. Pentru fiecare capitol se va afişa strict conţinutul acelui capitol. E recomandabil să punem un „link înapoi”, spre prima pagină (cea fără nici un capitol în URL) pentru a uşura navigarea. Şi uite aşa am făcut prima pagină dinamică cu PHP. În ce sens este ea dinamică? Cu HTML ar fi trebuit să facem 4 pagini!!! Una pentru sumar şi câte una pentru cuprins. Cu PHP am făcut o singură pagină ce se va încărca cu alt conţinut în funcţie de modul ei de apelare (de parametrii din URL). Important: să zicem că sunt capitole lungi. Fiecare capitol de 10KB. Înseamnă oare că atunci când cineva încarcă un capitol serverul îi va servi 4 x 10KB? Nuuu! Orice script PHP se execută pe server (am mai povestit), unde se va lua exact partea dorită (în cazul nostru 10KB) şi va fi „servită” în navigator. Când am compactat 4 pagini într-una singură (cu scriptul de mai sus) am obţinut evident o pagină PHP mai mare, dar navigatorului i se va servi de fiecare dată exact partea necesară (ramura de SWITCH respectivă).

Acum putem defini şi un fel de vrăjitor (wizard) pe aceeaşi idee. Doar că facem „sumarul” altcumva.

[PHP]$pas = $_GET[‘pas’];
switch($pas){
case 2:
echo ‘

Pasul 2

‘;
echo ‘

Inchideti ochii…

‘;
break;
case 3:
echo ‘

Pasul 3

‘;
echo ‘

Numarati oile…

‘;
break;
case 4:
echo ‘

Pasul 4

‘;
echo ‘

Ati adormit!

‘;
break;
default:
echo ‘

Pasul 1

‘;
echo ‘

Respirati adanc…

‘;
break;
}
echo ‘Pasi: ‘;
echo ‘1 ‘;
echo ‘2 ‘;
echo ‘3 ‘;
echo ‘4.’;[/PHP]

Codul de mai sus îl vedeţi în acţiune aici. Să explicăm puţin codul. Am pus în variabila $pas posibilul pas din vrăjitor. Apoi în SWITCH am pus pe câte o ramură fiecare pas. De ce pasul 1 l-am pus pe DEFAULT? Pentru ca să se încarce şi la apelarea fără parametrii a paginii. Apoi în afara SWITCH-ului am pus legăturile către paşi, care vor apare deci pe fiecare pagină. Evident, cu CSS pagina ar putea arăta mai bine 😉 dar aici vorbim de PHP şi de prins ideea din coduri cât mai la obiect.

Şi un ultim exemplu. Un cod şi mai simplu (şi mai simpatic).

[PHP]$rosu = $_GET[‘rosu’];
$verde = $_GET[‘verde’];
$albastru = $_GET[‘albastru’];
echo „

„;[/PHP]

Dacă veţi apela codul fără parametrii nu vă miraţi că nu se vede nimic (priviţi sursa pentru a înţelege). Dacă apelaţi cu diverse numere (nu uitaţi, trebuie să fie între 0 şi 255) veţi obţine diverse culori (priviţi din nou sursa).

demo03.php
demo03.php?rosu=80&verde=0&albastru=0
demo03.php?rosu=50&verde=50&albastru=220
demo03.php?rosu=50&verde=200&albastru=20


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (2 evaluări, media: 4,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *