L’ARRAY SUPERGLOBALE $_SERVER
Un Array superglobale molto importante è $_SERVER. Contiene informazioni sulla richiesta, sul server stesso, sugli headers, i percorsi, e lo script. Queste sono le informazioni estratte tramite un var_dump($_SERVER).
Abbiamo informazioni sullo script, SCRIPT_NAME, sulla QUERY_STRING in questo caso vuota, abbiamo il metodo della richiesta REQUEST_METHOD nel nostro caso ho fatto una GET attraverso HTTP/1.1. C’è il percorso completo dello script PHP SCRIPT_FILENAME, la comunicazione SERVER_PORT è avvenuta sulla porta 80 in quanto il protocollo HTTP di default usa questa porta, se usiamo HTTPS la porta è la 443. Le informazioni sul SERVER il mio sistema sta usando Apache su Windows 64 bit, e gli headers per quanto riguarda la richiesta effettuata dal client, ad esempio il client invia preferenze sulla lingua, nel mio caso HTTP_ACCEPT_LANGUAGE è impostato su it-IT come prima preferenza, poi en_US e infine en. q è il Quality-Factor, maggiore è questo valore maggiore è la preferenza.
ENCODING
Abbiamo informazioni sull’encoding, in pratica stiamo dicendo al Server se vuoi comprimere i contenuti con questi algoritmi lo puoi fare in quanto come client sono in grado di decomprimerli. Questo comporta una minor larghezza di banda in quanto inviamo meno dati e una maggiore velocità. Poi abbiamo HTTP_CONNECTION in pratica quel valore viene indicato dal client per fare in modo di non chiudere la connessione TCP ad ogni richiesta. Infine, abbiamo il tempo di richiesta come float e come intero.
L’ARRAY SUPERGLOBALE $_FILES
Questo Array ci fornisce le informazioni su un file caricato con un template HTML avente un form con method POST ed enctype impostato su multipart/form-data. Il codice seguente mostra tale Array.
APPROFONDIMENTO
In PHP, le superglobali $SERVER e $FILES sono array associativi che forniscono informazioni utili all’interno di uno script. Ecco una spiegazione dettagliata di entrambi in italiano:
L’Array Super Globale $SERVER
L’array superglobale $SERVER contiene informazioni relative all’ambiente del server e al contesto di esecuzione dello script PHP. Questo array è popolato da variabili impostate dal server web o direttamente dallo script PHP stesso.
Alcuni degli elementi più comuni presenti in $SERVER sono:
•$_SERVER[‘PHP_SELF’]: Restituisce il percorso del file PHP attualmente in esecuzione, a partire dalla root del documento.
•$_SERVER[‘SERVER_NAME’]: Contiene il nome dell’host del server web in cui è in esecuzione lo script, ad esempio “www.example.com”.
•$_SERVER[‘HTTP_HOST’]: Contiene il valore dell’intestazione HTTP “Host” inviata dal client.
•$_SERVER[‘REQUEST_METHOD’]: Indica il metodo HTTP utilizzato per accedere alla pagina (ad esempio, “GET”, “POST”).
•$_SERVER[‘QUERY_STRING’]: Contiene la query string, ovvero la parte dell’URL che segue il punto interrogativo (?).
•$_SERVER[‘HTTP_USER_AGENT’]: Restituisce l’user agent del client, ovvero informazioni sul browser e sul sistema operativo utilizzato dall’utente.
•$_SERVER[‘REMOTE_ADDR’]: Restituisce l’indirizzo IP del client che ha richiesto lo script.
Esempio di utilizzo:
echo $_SERVER[‘SERVER_NAME‘]; // Visualizza il nome del server
echo $_SERVER[‘REQUEST_METHOD‘]; // Visualizza il metodo HTTP utilizzato
L’Array Super Globale $FILES
L’array superglobale $FILES è utilizzato per gestire i file caricati tramite un modulo HTML. È popolato solo quando viene inviato un file attraverso un form con il metodo POST, utilizzando l’attributo enctype=”multipart/form-data”.
L’array $_FILES è strutturato come un array associativo multi-dimensionale, dove ogni file caricato è rappresentato da un sotto-array che contiene i seguenti elementi:
•$_FILES[‘nome_del_campo’][‘name’]: Il nome originale del file sul computer del client.
•$_FILES[‘nome_del_campo’][‘type’]: Il tipo MIME del file, ad esempio “image/jpeg”.
•$_FILES[‘nome_del_campo’][‘tmp_name’]: Il percorso temporaneo sul server dove è stato salvato il file caricato.
•$_FILES[‘nome_del_campo’][‘error’]: Un codice di errore associato al caricamento del file.
•$_FILES[‘nome_del_campo’][‘size’]: La dimensione del file in byte.
Esempio di utilizzo:
if ($_FILES[‘fileToUpload’][‘error’] == UPLOAD_ERR_OK) {
$tmp_name = $_FILES[‘fileToUpload’][‘tmp_name’];
$name = basename($_FILES[‘fileToUpload’][‘name’]);
move_uploaded_file($tmp_name, “uploads/$name”);
echo “File caricato con successo.”;
} else {
echo “Errore durante il caricamento del file.”;
}
In questo esempio, il file viene spostato dalla directory temporanea a una directory chiamata “uploads” sul server.
Conclusione
• $SERVER è principalmente utilizzato per raccogliere informazioni relative all’ambiente e alla richiesta HTTP.
• $FILES è specifico per la gestione dei file caricati tramite form HTML.
Questi array superglobali sono strumenti fondamentali in PHP per gestire le richieste e l’interazione con il server.
Lascia un commento