Globális változók
A PHP globális változói, leírás, felhasználás és tartalom
- Főoldal
/
- Kurzusok
/
- Webfejlesztés
/
- PHP
/
- PHP alapok
Globális változók
Ahogy az előző leckében is leírtuk, a PHP rendelkezik néhány globális változóval, melyeket az alkalmazásunk során bárhol és bármikor elérünk, és tudjuk használni.
Ezek a globális változók a következők:
- $_SERVER
- $_GET
- $_POST
- $_REQUEST
- $_FILES
- $_COOKIES
- $_SESSION
- $_ENV
Mindenik változó ezek közül egy-egy lista, amely tartalmaz vagy tartalmazhat különböző tulajdonságokat, és azoknak értékeit. Azért írtuk azt, hogy "tartalmazhat", mert a változók egy része első alkalommal üres, és bele menthetünk bármilyen tulajdonságot és értéket.
Mivel egy-egy listáról beszélünk, ezekben a változókban picit másképp kell létrehoznunk új elemeket vagy lekérdeznünk már beállítottakat, pl. új létrehozásához, vagy egy régi elem értékének a megváltoztatásához használjuk a következőt:
<?php
$_SESSION["first_variable"] = "This is the value";
?>
Ebben a példában a "$_SESSION" nevű változónkba, ami egy lista, létrehozunk egy "first_variable" nevű elemet, melynek az értéke lesz a "This is the value" szöveg. Amennyiben létezik már a first_variable elem a listában, akkor az értéke megváltozik erre a szövegre.
Ha csak kiíratni szeretnénk, vagy lekérdezni, akkor egyszerűen vesszük a változónkat és azon belül megmondjuk, hogy melyik elemre vagyunk kíváncsiak:
<?php
echo $_SESSION["first_variable"];
?>
1. $_SERVER
A $_SERVER nevű változó az alkalmazásunk indulásakor jön létre, és információkat tartalmaz az alkalmazásunkat futtató számítógépről, beállításokról és az oldalt meglátogató kliens számítógépéről is.
A fontosabb tulajdonságok, melyeket a $_SERVER tartalmaz:
<?php
echo $_SESSION["HTTP_HOST"];
// kiírja az alkalmazásunk címét, amit beírtunk a böngészőbe, pl: www.wannacode.com
echo $_SESSION["HTTP_USER_AGENT"];
// kiírja a kliens böngészőjének típusát, amellyel épp megnézte az alkalmazásunkat
echo $_SESSION["SERVER_NAME"];
// hasonló a HTTP_HOST-hoz, kiírja az alkalmazásunk címét
echo $_SESSION["SERVER_ADDR"];
// kiírja az alkalmazásunkat futtató szerver IP címét
echo $_SESSION["SERVER_PORT"];
// kiírja a port-ot melyen keresztül elértük az alkalmazásunkat
echo $_SESSION["REMOTE_ADDR"];
// kiírja a kliens számítógépének IP címét, honnan tekintjük meg jelenleg az alkalmazásunkat
echo $_SESSION["DOCUMENT_ROOT"];
// kiírja az alkalmazásunk pontos helyét a szerveren
echo $_SESSION["SERVER_ADMIN"];
// kiírja szerver számítógép rendszergazdájának email címét
echo $_SESSION["SCRIPT_FILENAME"];
// kiírja az alkalmazás futtatásához szükséges állomány pontos helyét és nevét
echo $_SESSION["REDIRECT_URL"];
// kiírja az épp aktuális címet, ahol nézzük az alkalmazásunkat, EZ NEM MINDEN ESETBEN ELÉRHETŐ
echo $_SESSION["REQUEST_METHOD"];
// kiírja a kérés típusát, milyen módon kértük az alkalmazást, GET vagy POST, ezekről kicsit
// lennebb bővebben
echo $_SESSION["REQUEST_URI"];
// kiírja az épp aktuális címet teljes formában, paraméterekkel együtt. Ezt tudjuk felhasználni bármikor
// ha kell nekünk az aktuális cím
echo $_SESSION["SCRIPT_NAME"];
// kiírja a szerver általt futtatott állomány nevét és a gyökér könyvtártól számított útvonalát
?>
2. $_GET
A $_GET változó is az alkalmazás indulásakor jön létre, és a címben beállított tulajdonságokat és értékeket tartalmazza.
Pl. ha a cím melyen futtatjuk az alkalmazásunkat úgy néz ki, hogy:
http://www.wannacode.com
És ehhez a címhez adunk még néhány tulajdonságot:
http://www.wannacode.com/?variable1=value1&variable2=value2
Akkor az alkalmazást futtató szerver ezeket a tulajdonságokat elmenti a $_GET nevű változóba. Ez ugyanazt fogja eredményezni, mintha mi állítanánk be kézzel őket az alábbi módon:
<?php
$_GET["variable1"] = "value1";
$_GET["variable2"] = "value2";
?>
Így ezeket a tulajdonságokat, bármikor és bárhol elérhetjük ezen a változón keresztül, az alkalmazásunkban.
3. $_POST
A $_POST hasonlóan a $_GET-hez és a $_SERVER-hez, az alkalmazás indulásakor jön létre, és a benne szereplő tulajdonságok azok lesznek, melyeket háttérben küldünk el az alkalmazásunknak, pl. egy form vagy egy ajax kérés segítségével.
Form esetében a form "method" tulajdonságát át kell állítani "POST"-ra. Ajax kérés esetén a "type" értékét kell "post"-ra állítani.
Példa form segítségével:
<form action="http://www.wannacode.com/" method="POST">
<input type="text" name="variable1" />
<input type="submit" name="submit" />
</form>
Formok esetében mindig kell egy "submit" típusú gomb, amely segítségével, megnyomása után a form elküldi az adatokat az action tulajdonságban megadott címre. Ebben a példában az elküldött adatok a variable1 és a submit lesznek. Ezeket lehet majd a $_POST-ban elérni az alábbi módon.
<?php
echo $_POST["variable1"];
echo $_POST["submit"];
?>
4. $_FILES
A $_FILES is egy olyan globális változó mely az alkalmazás futtatásakor létrejön, viszont ebbe a változóba csak POST segítségével elküldött fájlok tartalma kerül. Ez olyankor tőrténik, amikor fel szeretnénk tölteni egy állományt a szerverre az alkalmazásunk segítségével.
Ehhez szükségünk van egy formra és benne egy file típusú input mezőre.
<form action="http://www.wannacode.com/" method="POST">
<input type="file" name="file1" />
<input type="submit" name="submit" />
</form>
Ebben az esetben a form-nak be kell állítani még 1 tulajdonságot a "enctype"-t, melynek az értéke "multipart/form-data" kell legyen.
<form action="http://www.wannacode.com/" method="POST" enctype="multipart/form-data">
<input type="text" name="variable1" />
<input type="file" name="file1" />
<input type="submit" name="submit" />
</form>
Az így elküldött adatok közül, csak a file típusú mezők értéke nem kerül a $_POST változóba, ők a $_FILES változóba kerülnek azon a néven amit adunk nekik.
Minden feltöltött fájl egy listát fog tartalmazni előre meghatározott tulajdonságokkal, a feltöltött fájl nevével, hogy hova mentette el a szerver, sikerült-e a feltöltés, milyen típusú fájlt töltöttünk fel és, hogy mekkora a mérete. Ezeket az adatokat azon a néven érjük el, amit adtunk a formban, az előbbi példát tekintve ez most a:
$_FILES["file1"]
És a neki megfelelő tartalom pl. így fog kinézni:
// A neve a feltöltött fájlnak, pl: MyFile.jpg
echo $_FILES["file1"]["name"];
// A típusa a feltöltött fájlnak, pl: image/jpeg
echo $_FILES["file1"]["type"];
// A feltöltési helye és neve a szerveren, pl: /tmp/php/php6hst32
echo $_FILES["file1"]["tmp_name"];
// Sikerült a feltöltés vagy nem, itt egy számot fogunk találni
echo $_FILES["file1"]["error"];
// A feltöltött fájl mérete byte-ban, pl: 10245
echo $_FILES["file1"]["size"];
Amennyiben az error értéke 0, a fájl feltöltés sikerül, ha nagyobb az értéke mint 0, akkor az a hiba kód, hogy miért nem sikerült a feltöltés.
5. $_REQUEST
A $_REQUEST a $_POST-t és a $_GET-t összefogó változó, mely tartalmazza a $_GET és a $_POST összes tulajdonságát, melyet az alkalmazásunk indulásokat a rendszer beállít. A közös névvel rendelkező tulajdonságok esetén a $_POST tulajdonsága lesz az eredmény.
6. $_COOKIES
A $_COOKIES egy olyan változó, mely a kliens (látogató) számítógépén elindított böngésző (amelyikkel épp nézi alkalmazásunkat) által küldött adatokat, tulajdonságokat lehet elérni. Ilyen pl. a PHPSESSID, amely egy egyedi azononsító, ezáltal tudja az alkalmazásunkat futtató szerver, hogy milyen tulajdonságokat kell számunkra beállítson a $_SESSION-ben, meg egyéb helyeken.
A látogató böngészője minden alkalommal mikor refresht adunk az oldalnak, vagy átmegyünk egy másik oldalra, elküldi a COOKIE (süti) adatokat az alkalmazásnak, melyek ahhoz a címhez tartoznak, így minden alkalommal az alkalmazás indulásakor jön létre a $_COOKIES.
7. $_SESSION
A $_SESSION a többi változóhoz képest, nem jön létre magától az alkalmazás indulásakor. Elindításához be kell írnunk az alábbi parancsot:
<?php
session_start();
?>
A parancs végrehajtásakor az alkalmazást futtató szerver veszi a $_COOKIES-ból a PHPSESSID nevű tulajdonságot, és hozzárendeli az adatokat, melyek már létre voltak hozva korábban.
A parancs végrehajtása utána a $_SESSION változó bárhol és bármikor elérhetővé válik a beállított tulajdonságokkal együtt.
8. $_ENV
A $_ENV változó hasonló a $_SERVER-hez, az alkalmazásunk futtatásakor jön létre és a szerver által beállított tulajdonságokat tartalmaz, melyek szerverbeállítástól függően változnak. Használat előtt érdemes kiíratni az összes tulajdonságot, és kiválasztani azt amit szeretnénk használni, ha lesz olyan.
Az adatok kiíratásához használjuk az alábbi parancsot:
<?php
print_r( $_ENV );
?>
- Előző lecke: A PHP változók
- Következő lecke: Tömbök vagy listák
Részletek
- Megtekintve: 441
- Haszontalannak jelölve: 0
- Hasznosnak jelölve: 0
- Értékelés: