ARRAY SUPERGLOBALI

SCOPE

php logoQuando 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.

Scope

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.

GET Request

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.

Query String

$_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:

echo

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.

Form
Copy to Clipboard

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‘];
      echoCiao, ” . htmlspecialchars($nome) . “!”;
} else {
      echoNome 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.

LINK AI POST PRECEDENTI

IL LINGUAGGIO PHP

LINK AL CODICE SU GITHUB

GITHUB