Variabili globali PHP - Variabili superglobali
- Pagina precedente Ordinamento degli array PHP
- Pagina successiva Elaborazione dei moduli PHP
Le variabili superglobali sono state introdotte in PHP 4.1.0 e sono variabili innate disponibili in tutto lo scope.
Variabili globali PHP - Variabili superglobali
Molte variabili predefinite in PHP sono "superglobali", il che significa che sono disponibili in tutto lo scope dello script. Non è necessario eseguire global $variable; per accedervi in una funzione o un metodo.
Queste variabili superglobali sono:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
Questa sezione presenterà alcune variabili superglobali e altre saranno illustrate in capitoli successivi.
$GLOBALS - Riferimento a tutte le variabili disponibili nel contesto globale
La variabile globale $GLOBALS viene utilizzata per accedere alle variabili globali in qualsiasi posizione del script di PHP (sia da una funzione o un metodo).
PHP memorizza tutte le variabili globali in un array chiamato $GLOBALS[index]. Il nome della variabile è la chiave dell'array.
Esempio di come utilizzare la variabile superglobale $GLOBALS:
Esempio
<?php $x = 75; $y = 25; function addition() { $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; } addition(); echo $z; ?>
Nel esempio sopra, poiché z è una variabile dell'array $GLOBALS, può essere acceduta anche al di fuori della funzione.
PHP $_SERVER
La variabile superglobale $_SERVER memorizza informazioni riguardanti gli header, i percorsi e la posizione dello script.
Esempio di come utilizzare alcuni elementi di $_SERVER:
Esempio
<?php 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']; ?>
La tabella seguente elenca i principali elementi che puoi accedere in $_SERVER:
Elemento/Codice | Descrizione |
---|---|
$_SERVER['PHP_SELF'] | Restituisce il nome del file dello script che si sta eseguendo. |
$_SERVER['GATEWAY_INTERFACE'] | Restituisce la versione della specifica CGI utilizzata dal server. |
$_SERVER['SERVER_ADDR'] | Restituisce l'indirizzo IP del server su cui esegue lo script. |
$_SERVER['SERVER_NAME'] | Restituisce il nome dell'host del server su cui esegue lo script (ad esempio www.codew3c.com). |
$_SERVER['SERVER_SOFTWARE'] | Restituisce la stringa di identificazione del server (ad esempio Apache/2.2.24). |
$_SERVER['SERVER_PROTOCOL'] | Restituisce il nome e la versione del protocollo di comunicazione utilizzato per la richiesta della pagina (ad esempio, "HTTP/1.0"). |
$_SERVER['REQUEST_METHOD'] | Restituisce il metodo di richiesta utilizzato per accedere alla pagina (ad esempio POST). |
$_SERVER['REQUEST_TIME'] | Restituisce il timestamp all'inizio della richiesta (ad esempio 1577687494). |
$_SERVER['QUERY_STRING'] | Restituisce la stringa di ricerca, se è stata raggiunta questa pagina tramite stringa di ricerca. |
$_SERVER['HTTP_ACCEPT'] | Restituisce l'intestazione della richiesta proveniente dalla richiesta corrente. |
$_SERVER['HTTP_ACCEPT_CHARSET'] | Restituisce l'intestazione Accept_Charset proveniente dalla richiesta corrente (ad esempio utf-8, ISO-8859-1) |
$_SERVER['HTTP_HOST'] | Restituisce l'intestazione Host proveniente dalla richiesta corrente. |
$_SERVER['HTTP_REFERER'] | Restituisce l'URL completo della pagina corrente (non affidabile, poiché non tutti gli user agent lo supportano). |
$_SERVER['HTTPS'] | Se è stato utilizzato il protocollo HTTP sicuro per interrogare lo script. |
$_SERVER['REMOTE_ADDR'] | Restituisce l'indirizzo IP dell'utente che sta navigando la pagina corrente. |
$_SERVER['REMOTE_HOST'] | Restituisce il nome dell'host dell'utente che sta navigando la pagina corrente. |
$_SERVER['REMOTE_PORT'] | Restituisce il numero di porta utilizzato per connettersi al server web sul computer dell'utente. |
$_SERVER['SCRIPT_FILENAME'] | Restituisce il percorso assoluto dello script corrente. |
$_SERVER['SERVER_ADMIN'] | Questo valore indica il parametro SERVER_ADMIN nella configurazione del file di configurazione del server Apache. |
$_SERVER['SERVER_PORT'] | Porta utilizzata dal server web. Il valore predefinito è "80". |
$_SERVER['SERVER_SIGNATURE'] | Restituisce la versione del server e il nome del host virtuale. |
$_SERVER['PATH_TRANSLATED'] | Percorso di base del file system in cui si trova lo script (non la directory root del documento). |
$_SERVER['SCRIPT_NAME'] | Restituisce il percorso del script corrente. |
$_SERVER['SCRIPT_URI'] | Restituisce l'URI della pagina corrente. |
PHP $_REQUEST
PHP $_REQUEST viene utilizzato per raccogliere i dati del modulo inviati tramite HTML.
Esempio che mostra un modulo con campi di input e pulsante di invio. Dopo che l'utente clicca il pulsante di invio per inviare i dati del modulo, i dati del modulo vengono inviati al file specificato nell'attributo action del tag <form>. Nel presente esempio, abbiamo specificato il file stesso per elaborare i dati del modulo. Se si desidera utilizzare un altro file PHP per elaborare i dati del modulo, modificarlo con il nome del file scelto. Poi possiamo utilizzare la variabile superglobale $_REQUEST per raccogliere i valori dei campi input:
Esempio
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Nome: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_REQUEST['fname']; echo $name; ?> </body> </html>
PHP $_POST
PHP $_POST viene ampiamente utilizzato per raccogliere i dati del modulo inviati tramite il metodo "post" di un modulo HTML. $_POST viene anche utilizzato spesso per trasmettere variabili.
Esempio che mostra un modulo con campi di input e pulsante di invio. Dopo che l'utente clicca il pulsante di invio per inviare i dati, i dati del modulo vengono inviati al file specificato nell'attributo action del tag <form>. Nel presente esempio, abbiamo specificato il file stesso per elaborare i dati del modulo. Se si desidera utilizzare un altro file PHP per elaborare i dati del modulo, sostituirlo con il nome del file scelto. Poi possiamo utilizzare la variabile superglobale $_POST per raccogliere i valori dei campi di input:
Esempio
<html> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Nome: <input type="text" name="fname"> <input type="submit"> </form> <?php $name = $_POST['fname']; echo $name; ?> </body> </html>
PHP $_GET
PHP $_GET può essere utilizzato anche per raccogliere i dati del modulo HTML inviati (method="get").
$_GET può anche raccogliere i dati inviati nell'URL.
Supponiamo di avere una pagina che contiene un collegamento con parametri:
<html> <body> <a href="test_get.php?subject=PHP&web=codew3c.com">Test $GET</a> </body> </html>
Quando l'utente fa clic sul link "Test $GET", i parametri "subject" e "web" vengono inviati a "test_get.php", quindi puoi accedere a questi valori in "test_get.php" tramite $_GET.
Esempio seguente è il codice di "test_get.php":
Esempio
<html> <body> <?php echo "In " . $_GET['web'] . " studiando " . $_GET['subject']; ?> </body> </html>
Suggerimento:Verrai Modulo PHP In questa sezione hai imparato di più su $_POST e $_GET.
- Pagina precedente Ordinamento degli array PHP
- Pagina successiva Elaborazione dei moduli PHP