Muutujad aadressiribal

By Ivari at 18.02.2010

PHP skripti on võimalik juhtida otse aadressiribalt. Selleks tuleb veebiaadressi lõppu kirjutada märk "?" ning lisada muutujate-väärtuste paarid, mille vahele pannakse ampersand "&":

http://www.example.com/myscript.php?a=5&b=3

Praegusel juhul käivitatakse serveris www.example.com skriptifail myscript.php ning skriptile antakse kaasa kaks parameetrit a ja b vastavate väärtustega 5 ja 3.

Muutujate kasutamine skriptis

Aadressiribalt sisestatud muutujad asuvad massiivis $_GET. Massiivide kohta lugege eelmist postitust. Tegemist on assotsiatiivse massiiviga, kus muutuja nimi on massiivi võtmeks. Seega antud juhul tekib massiivi $_GET kaks elementi $_GET["a"] ja $_GET["b"]. Esimese elemendi väärtus on 5, teise elemendi väärtus on 3.
print $_GET["a"];
print "<br />";
print $_GET["b"];

Ülesanne

Eelmises koduses ülesandes sai tekitatud PHP skript, mis trükib välja muutuja a väärtuse sõnalisel kujul või teate, et skript ei oska a väärtust sõnastada. Muudame skripti koodi selliselt, et vaadeldav muutuja ei asu mitte skriptifailis endas, vaid kontrollitakse aadressiribalt sisestatud muutuja arv väärtust:

if($_GET["arv"]==0)
	print "a on null<br />";

if($_GET["arv"]==1)
	print "a on üks<br />";

if( ($_GET["arv"]!=0) && ($_GET["arv"]!=1) )
	print "ma ei tea mis a on<br />";

Sellise skripti käivitamine võib toimuda näiteks järgnevalt:

http://www.example.com/skript.php?arv=1

http://www.example.com/skript.php?arv=10

phpinfo()

PHP skripti käivituskeskkonnas eksisteerivate muutujate vaatlemiseks võib tekitada eraldi faili, mis sisaldab koodi:

phpinfo();

Faili käivitamisel ning aadressiribale muutujate kirjutamisel vaadelge kuvatava infolehe lõpuosas olevat sektsiooni PHP variables, mis sisaldab tekkinud muutujate nimetusi ja väärtusi. Kõik muutujad on kasutatavad lehel näidatavate nimedega (kuid koodis peab nende ette olema kirjutatud dollarimärk).

Lisaks aadressiriba muutujatele sisaldub seal infot ka veebiserveri, käivitatava faili, faili asukoha domeeninime ja serveri ning kliendi IP aadresside kohta.