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ı: 70

PHP 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.