ARRAY SUPERGLOBALI
SCOPE
Quando definiamo uno script l’ambito principale è quello globale. Oltre all’ambito globale esiste un ambito locale, quello cioè interno alle funzioni. La comunicazione tra ambito globale e ambito locale avviene attraverso i parametri delle funzioni, passiamo un valore alla funzione dall’ambito globale e la funzione può restituire un valore all’ambito globale. Il codice seguente spiega meglio questi concetti.

ARRAY SUPERGLOBALI BREVE INTRODUZIONE
- $GLOBALS
- È spiegato dal codice seguente.
- $_SERVER
- Contiene informazioni come ad esempio gli headers, percorsi, posizioni nello script etc*/
- $_GET
- Quando passiamo informazioni tramite URL possiamo recuperare le coppie parametro valore tramite questo array.
- $_POST
- Quando viene inviato un Form tramite POST possiamo recuperare i valori inviati al server grazie a questo Array.
- $_FILES
- Sempre quando inviamo un Form, se carichiamo dei files questi li possiamo recuperare grazie all’array $_FILES.
- $_COOKIE
- Cookie e sessioni sono strumenti per mantenere lo stato. Il protocollo HTTP è stateless, cioè non mantiene la memoria su una comunicazione avvenuta tra client e server. A volte però abbiamo necessità di memorizzare alcune informazioni, e questo lo facciamo attraverso cookie e session.
- $_SESSION
- $_REQUEST
- Contenuto combinato di $_GET, $_POST e $_COOKIE
- $_ENV
- Contiene informazioni sulle variabili di ambiente.
L’ARRAY SUPERGLOBALE $_GET
Una richiesta tra client e server può essere effettuata in diversi modi. Questi vengono chiamati metodi HTTP. Una classica comunicazione tra client e server avviene con il metodo GET o POST. Quando digitiamo un URL nella barra degli indirizzi di un browser stiamo effettuando una richiesta GET. Se andiamo all’interno di un browser e apriamo gli strumenti per sviluppatori (F12 per Chrome) apriamo la scheda Network, ricarichiamo la pagina e selezioniamo la richiesta, vedremo che il metodo è GET.
Facendo un var_dump($_GET) e aggiornando la pagina vedremo un array vuoto come si può vedere nella figura in alto. Tuttavia, se aggiorniamo l’URL impostando un primo parametro nome e valore Marco e un secondo parametro corso con valore PHP, l’array avrà due elementi.
$_GET è un array con due elementi del query string nome di valore Marco e corso avente valore PHP. Se ora commentiamo il var_dump e usiamo la seguente istruzione PHP
echo “Corso {$_GET[‘corso‘]} realizzato da {$_GET[‘nome’]}”;
avremo:
Abbiamo recuperato le informazioni dalla query string. Se creiamo un template base HTML e un form con due caselle di testo e un pulsante submit avremo che le informazioni digitate nelle caselle di testo, alla pressione del pulsante submit vengono riportate nell’URL.
APPROFONDIMENTO
L’array superglobale $_GET in PHP è un array associativo che contiene i dati inviati al server tramite il metodo HTTP GET. In altre parole, $_GET viene utilizzato per accedere ai parametri della query string che sono passati nella URL quando una richiesta viene inviata a una pagina web.
Come funziona $_GET
Quando un utente invia una richiesta a un URL del tipo:
http://esempio.com/pagina.php?nome=Maria&eta=25
I parametri nome e eta vengono trasmessi alla pagina pagina.php tramite la query string. In questo caso, $_GET conterrà i seguenti valori:
$_GET[‘nome‘] = ‘Maria‘;
$_GET[‘eta‘] = ‘25‘;
Esempio di utilizzo
Ecco un esempio semplice di come utilizzare $_GET in un file PHP:
<?php
// Verifica se il parametro ‘nome’ è stato passato tramite URL
if (isset($_GET[‘nome‘])) {
$nome = $_GET[‘nome‘];
echo “Ciao, ” . htmlspecialchars($nome) . “!”;
} else {
echo “Nome non fornito.“;
}
?>
Se l’utente visita http://esempio.com/pagina.php?nome=Maria, la pagina mostrerà “Ciao, Maria!”.
Sicurezza
Quando si utilizzano i dati provenienti da $_GET, è importante ricordare che questi dati possono essere manipolati dall’utente, quindi è necessario sanificarli e validarli per evitare vulnerabilità come l’injection di script o SQL injection. Una pratica comune è utilizzare funzioni come htmlspecialchars() per prevenire l’esecuzione di codice HTML o JavaScript indesiderato.
Differenza tra $_GET e $_POST
Mentre $_GET recupera i dati dalla query string nella URL, $_POST recupera i dati inviati tramite il metodo POST. Il metodo POST è generalmente utilizzato quando si devono inviare grandi quantità di dati o dati sensibili (ad esempio, password), poiché i dati non sono visibili nella URL.
Considerazioni
•Dimensione dei dati: Poiché i dati $_GET sono passati nella URL, esiste un limite alla quantità di dati che possono essere trasmessi.
•Visibilità: I dati inviati con $_GET sono visibili nella URL e possono essere facilmente salvati nei segnalibri o condivisi, rendendoli adatti per informazioni non sensibili.
In sintesi, $_GET è uno strumento potente e utile per gestire i parametri della query string in PHP, ma richiede attenzione per garantire la sicurezza e l’integrità dei dati.
Lascia un commento