A PHP szuperglobálisok olyan beépített változók, amelyek minden hatókörből elérhetők.
PHP Super Globals (PHP Super Globals)
Ebben a leckében példákkal magyarázzuk el az összes szuperglobális PHP-t. Olvasson tovább, hogy megtudja.
PHP Super Globals: $GLOBALS
A $GLOBALS szuperglobális a PHP szkript bármely mezőjéből (beleértve a függvényeket és metódusokat is) a globális változók elérésére szolgál. A PHP az összes globális változót egy $GLOBALS[index] tömbben tárolja. Az index tartalmazza a változó nevét. A következő példa bemutatja, hogyan kell használni a $GLOBALS szuperglobális változót:
$number1 = 50;
$number2 = 20;
function addition(): int
{
return $GLOBALS[ 'number3' ] = $GLOBALS[ 'number2' ] + $GLOBALS[ 'number1' ];
}
echo addition();
// Çıktı: 70PHP Super Globals: $_REQUEST
A PHP $_REQUEST egy PHP szuperglobális, amely adatok gyűjtésére szolgál HTML űrlapból.
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_REQUEST[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>A fenti példában létrehoztunk egy űrlapot, amely a post metódussal adja vissza az adatokat. Engedélyeztük neki, hogy ugyanazon az oldalon adja vissza az adatokat a következővel: $_SERVER['PHP_SELF']. Ellenőriztük, hogy a $_SERVER['REQUEST_METHOD'] szuperglobális kérés egy közzétételi kérelem. Ezután biztonságosan hozzárendeltük az fname nevű bemenet adatait a név értékkel a $name változóhoz a $_REQUEST superglobal segítségével a htmlspecialchars() függvény segítségével. A PHP if feltételével ellenőriztük, hogy a $name változó üres-e vagy sem. Ha üres, akkor a "Nincs név" kimenetet írjuk ki, ellenkező esetben a $name változó adatait.
PHP Super Globals: $_POST
A PHP $_POST egy PHP szuperglobális adatgyűjtés a HTML űrlapból a POST metóduson keresztül.
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'POST') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_POST[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>A fenti példában létrehoztunk egy űrlapot, amely a post metódussal adja vissza az adatokat. Engedélyeztük neki, hogy ugyanazon az oldalon adja vissza az adatokat a következővel: $_SERVER['PHP_SELF']. Ellenőriztük, hogy a $_SERVER['REQUEST_METHOD'] szuperglobális kérés egy közzétételi kérelem. Ezután biztonságosan hozzárendeltük az fname nevű bemenet adatait a név értékkel a $name változóhoz a $_POST superglobal segítségével a htmlspecialchars() függvény segítségével. A PHP if feltételével ellenőriztük, hogy a $name változó üres-e vagy sem. Ha üres, akkor a "Nincs név" kimenetet írjuk ki, ellenkező esetben a $name változó adatait.
PHP Super Globals: $_GET
A PHP $_GET egy PHP szuperglobális adatgyűjtés, amelyet a HTML űrlapból a GET metóduson keresztül gyűjtenek. A get paranccsal küldött adatokat az url-ben is lekérhetjük a $_GET szuperglobálissal.
Adatok lekérése az űrlapból a PHP $_GET Super Global segítségével
Az alábbi példában a HTML űrlapból kaptunk adatokat a PHP $_GET superglobal segítségével.
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php
echo $_SERVER[ 'PHP_SELF' ]; ?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER[ 'REQUEST_METHOD' ] === 'GET') {
// input elementinden gelen veriyi değişkene ata
$name = htmlspecialchars($_GET[ 'fname' ]);
if (empty($name)) {
echo 'Ad yok';
} else {
echo $name;
}
}
?>
</body>
</html>A fenti példában létrehoztunk egy űrlapot, amely a post metódussal adja vissza az adatokat. Engedélyeztük neki, hogy ugyanazon az oldalon adja vissza az adatokat a következővel: $_SERVER['PHP_SELF']. Ellenőriztük, hogy a $_SERVER['REQUEST_METHOD'] szuperglobális kérés egy közzétételi kérelem. Ezután biztonságosan hozzárendeltük az fname nevű bemenet adatait a név értékkel a $name változóhoz a $_POST superglobal segítségével a htmlspecialchars() függvény segítségével. A PHP if feltételével ellenőriztük, hogy a $name változó üres-e vagy sem. Ha üres, akkor a "Nincs név" kimenetet írjuk ki, ellenkező esetben a $name változó adatait.
Adatok lekérése URL-ből a PHP $_GET Super Global segítségével
Az alábbi példában a PHP $_GET szuperglobális URL-ből vettük le az adatokat.
<!DOCTYPE html>
<html>
<body>
<a href="<?php
echo $_SERVER[ 'PHP_SELF' ] ?>?name=Onur%20Özden&website=www.onurozden.com.tr">Buraya Tıkla</a>
<?php
echo "Ben " . $_GET[ 'name' ] . " şu sitede PHP öğreniyorum: " . $_GET[ 'website' ];
?>
</body>
</html>A fenti példában a fájlnév beírása helyett a $_SERVER szuperglobal segítségével kaptuk meg a fájlnevet. Most magyarázzuk el, mit tettünk ebben a példában. Létrehoztunk egy HTML dokumentumot, és megadtuk a név paramétert a get.php fájlnak. A névparaméternek a "Onur Özden" értéket adtuk, és a paramétereket '&' jellel választottuk el. Utána létrehoztuk a weboldal paramétert és a "onurozden.com.tr" értéket adtuk neki. Az A címkére a "Click Here" szöveget nyomtattuk. A PHP részhez érve a "My name"-t írtuk ki visszhanggal, és a $_GET szuperglobal segítségével a konkatenációs operátort használtuk a név nevű paraméter adatainak lekérésére és kinyomtatására. Ismét az egyesítési operátort használva kinyomtattuk az "és a webhelyemet". Újra az összefűzési operátort használtuk, és a $GET szupergloballal megkaptuk a weboldal paraméter adatait és kinyomtattuk.
PHP Super Globals: $_SERVER
A $_SERVER superglobal egy PHP szuperglobális változó, amely információkat tartalmaz a fejlécekről, elérési utakról és szkriptek helyéről. Az alábbi példában bemutatjuk, hogyan kell használni a $_SERVER szuperglobált.
echo $_SERVER['PHP_SELF'];
echo '</br>';
echo $_SERVER['SERVER_NAME'];
echo '</br>';
echo $_SERVER['HTTP_HOST'];
echo '</br>';
echo $_SERVER['HTTP_REFERER'];
echo '</br>';
echo $_SERVER['HTTP_USER_AGENT'];
echo '</br>';
echo $_SERVER['SCRIPT_NAME'];A fenti példában $szám1 és $szám2 változókat definiáltunk, és szám típusú értékeket adtunk nekik. Ezután definiáltunk egy add nevű függvényt, amely int adattípusú értéket ad vissza. Azt mondtuk, hogy a $GLOBALS szuperglobálisban a változók nevei indexként vannak megtartva. A változót egy number3 nevű index létrehozásával hoztuk létre. Ehhez a változóhoz a $szám2 változó és a $szám1 változó összegét rendeltük hozzá, amit a globális területről a $GLOBALS szuperglobálissal értünk el. Ezután ezt az értéket return-nel adtuk vissza, és leállítottuk a függvényt. Utolsó lépésként echo segítségével adjuk ki az értéket az add() függvényünkben.
A PHP $_SERVER Super Global minden felhasználása
| $_SERVER['PHP_SELF'] | A végrehajtott szkript fájlnevét adja vissza. |
| $_SERVER['GATEWAY_INTERFACE'] | A kiszolgáló által használt CGI (Common Gateway Interface) verziót adja vissza. |
| $_SERVER['SERVER_ADDR'] | A gazdagép IP-címét adja vissza. |
| $_SERVER['SERVER_NAME'] | A fő szerver nevét adja vissza. |
| $_SERVER['SERVER_SOFTWARE'] | A szerverazonosító szöveget adja vissza (például Apache/2.2.24). |
| $_SERVER['SERVER_PROTOCOL'] | Az információs protokoll nevét és verzióját adja vissza (például HTTP/1.1). |
| $_SERVER['REQUEST_METHOD'] | Az oldal eléréséhez használt kérési módot adja vissza (például POST, GET). |
| $_SERVER['REQUEST_TIME'] | A kérés kezdetének időbélyegét adja vissza (pl. 1377687496). |
| $_SERVER['QUERY_STRING'] | Ha az oldal lekérdezési karakterláncon keresztül érhető el, akkor a lekérdezési karakterláncot adja vissza. |
| $_SERVER['HTTP_ACCEPT'] | Az aktuális kérelem elfogadás fejlécét adja vissza. |
| $_SERVER['HTTP_ACCEPT_CHARSET'] | Az aktuális kérés Accept_Charset fejlécét adja vissza (például utf-8, ISO-8859-1). |
| $_SERVER['HTTP_HOST'] | Az aktuális kérés gazdagép fejlécét adja vissza. |
| $_SERVER['HTTP_REFERER'] | Az aktuális oldal teljes URL-jét adja vissza (nem megbízható, mivel nem minden felhasználói ügynök támogatja). |
| $_SERVER['HTTPS'] | Ellenőrzi, hogy a parancsfájl lekérdezése biztonságos HTTP-protokollon (HTTPS) keresztül történik-e. |
| $_SERVER['REMOTE_ADDR'] | Azt az IP-címet adja vissza, amelyről a felhasználó az aktuális oldalt nézi. |
| $_SERVER['REMOTE_HOST'] | Azt a gazdagépnevet adja vissza, ahonnan a felhasználó az aktuális oldalt nézi. |
| $_SERVER['REMOTE_PORT'] | A felhasználó gépén a webszerverrel való kommunikációhoz használt portot adja vissza. |
| $_SERVER['SCRIPT_FILENAME'] | Az éppen futó szkript abszolút elérési útját adja vissza. |
| $_SERVER['SERVER_ADMIN'] | A webszerver konfigurációs fájljában a SERVER_ADMIN direktívának adott értéket adja vissza (ha a szkript egy virtuális gazdagépen fut, akkor ez az adott virtuális gazdagéphez meghatározott érték lesz) (például some@onurozden.com.tr). |
| $_SERVER['SERVER_PORT'] | A webszerver által kommunikációhoz használt szervergép portját adja vissza (például 80). |
| $_SERVER['SERVER_SIGNATURE'] | A kiszolgáló által generált oldalhoz hozzáadott kiszolgálóverziót és virtuális gazdagépnevet adja vissza. |
| $_SERVER['PATH_TRANSLATED'] | Visszaadja az aktuális parancsfájl fájlrendszer alapú elérési útját. |
| $_SERVER['SCRIPT_FILENAME'] | Visszaadja az aktuális szkript elérési útját. |
| $_SERVER['SCRIPT_URI'] | Az aktuális oldal URI-jét adja vissza. |



