PHP per aspiranti programmatori: D – FUNZIONI PREDEFINITE

All’ indirizzo https://umbriawaysemplifica.wordpress.com/2018/12/16/php-per-aspiranti-programmatori-c-funzioni/ abbiamo parlato di funzioni in php, adesso passiamo ad analizzare le funzioni predefinite. Un superglobale è una variabile predefinita che è sempre accessibile, indipendentemente dall’ambito. Puoi accedere ai superglobali di PHP tramite qualsiasi funzione, classe o file. Le variabili superglobali di PHP sono $ _SERVER, $ GLOBALS, $ _REQUEST, $ _POST, $ _GET, $ _FILES, $ _ENV, $ _COOKIE, $ _SESSION. $ _SERVER è un array che include informazioni come intestazioni, percorsi e posizioni degli script. Le voci in questo array sono create dal server web. $ _SERVER [‘SCRIPT_NAME’] restituisce il percorso dello script corrente:

<code>
<?php
echo $_SERVER[‘SCRIPT_NAME’];
//Outputs “/somefile.php”
?>
</code>

Il nostro esempio è stato scritto in un file chiamato somefile.php, che si trova nella radice del server web. $ _SERVER [‘HTTP_HOST’] restituisce l’intestazione dell’Host dalla richiesta corrente.

<code>
<?php
echo $_SERVER[‘HTTP_HOST’];
//Outputs “localhost”
?>
</code>

Questo metodo può essere utile quando sul server sono presenti molte immagini e è necessario trasferire il sito Web a un altro host. Invece di cambiare il percorso per ogni immagine, puoi fare quanto segue, crea un file config.php, che contiene il percorso delle tue immagini:

<code>
<?php
$host = $_SERVER[‘HTTP_HOST’];
$image_path = $host.’/images/’;
?>
</code>

Usa il file config.php negli script:

<?php
require ‘config.php’;
echo ‘<img src=”‘.$image_path.’header.png” />’;
?>

Il percorso per le tue immagini è ora dinamico. Cambierà automaticamente, in base all’intestazione Host.
Questo grafico mostra gli elementi principali di $ _SERVER. $ _SERVER [‘HTTP_HOST’] restituisce l’intestazione dell’Host dalla richiesta corrente. Lo scopo dei superglobali PHP $ _GET e $ _POST è raccogliere i dati che sono stati inseriti in un modulo. L’esempio seguente mostra un semplice modulo HTML che include due campi di input e un pulsante di invio:

<code>
<form action=”first.php” method=”post”>
<p>Name: <input type=”text” name=”name” /></p>
<p>Age: <input type=”text” name=”age” /></p>
<p><input type=”submit” name=”submit” value=”Submit” /></p>
</form>
</code>

Lo scopo dei superglobali PHP $ _GET e $ _POST è raccogliere i dati che sono stati inseriti in un modulo.
L’attributo action specifica che quando il modulo viene inviato, i dati vengono inviati a un file PHP denominato first.php. Gli elementi del modulo HTML hanno nomi, che verranno utilizzati quando si accede ai dati con PHP. L’attributo del metodo sarà discusso nella prossima lezione. Per ora, imposteremo il valore su “post”. Ora, quando abbiamo un modulo HTML con l’attributo action impostato sul nostro file PHP, possiamo accedere ai dati del modulo pubblicati usando l’array associativo $ _POST. Nel file first.php:

<code>
<html>
<body>

Welcome <?php echo $_POST[“name”]; ?><br />
Your age: <?php echo $_POST[“age”]; ?>

</body>
</html>
</code>

L’array superglobal $ _POST contiene coppie chiave / valore. Nelle coppie, le chiavi sono i nomi dei controlli del modulo e i valori sono i dati di input immessi dall’utente. Abbiamo usato l’array $ _POST, in quanto il metodo = “post” è stato specificato nel modulo. I due metodi per inviare i moduli sono GET e POST.
Le informazioni inviate da un modulo tramite il metodo POST sono invisibili agli altri, poiché tutti i nomi e / o i valori sono incorporati nel corpo della richiesta HTTP. Inoltre, non ci sono limiti sulla quantità di informazioni da inviare. Inoltre, il POST supporta funzionalità avanzate come il supporto per l’input binario multiparte durante il caricamento dei file sul server. Tuttavia, non è possibile aggiungere un segnalibro alla pagina, poiché i valori inviati non sono visibili. Il POST è il metodo preferito per inviare i dati del modulo. Le informazioni inviate tramite un modulo utilizzando il metodo GET sono visibili a tutti (tutti i nomi e i valori delle variabili sono visualizzati nell’URL). GET imposta anche dei limiti sulla quantità di informazioni che possono essere inviate – circa 2000 caratteri. Tuttavia, poiché le variabili sono visualizzate nell’URL, è possibile aggiungere un segnalibro alla pagina, che può essere utile in alcune situazioni. Per esempio:

<code>
<form action=”actionGet.php” method=”get”>
Name: <input type=”text” name=”name” /><br /><br />
Age: <input type=”text” name=”age” /><br /><br />
<input type=”submit” name=”submit” value=”Submit” />
</form>
</code>

actionGet.php

<code>
<?php
echo “Hi “.$_GET[‘name’].”. “;
echo “You are “.$_GET[‘age’].” years old.”;
?>
</code>

NON DEVI essere utilizzato MAI per l’invio di password o altre informazioni sensibili! Quando si utilizza POST o GET, la corretta convalida dei dati del modulo attraverso il filtraggio e l’elaborazione è di vitale importanza per proteggere il modulo da hacker! Utilizzando una sessione, è possibile memorizzare le informazioni in variabili, da utilizzare su più pagine. Le informazioni non vengono memorizzate sul computer dell’utente, come avviene con i cookie. Per impostazione predefinita, le variabili di sessione durano fino a quando l’utente chiude il browser. Una sessione viene avviata utilizzando la funzione session_start (). Usa il PHP globale $ _SESSION per impostare le variabili di sessione.

<code>
<?php
// Start the session
session_start();

$_SESSION[‘color’] = “red”;
$_SESSION[‘name’] = “John”;
?>
</code>

Ora, le variabili di sessione relative al colore e al nome sono accessibili su più pagine durante l’intera sessione. La funzione session_start () deve essere la prima cosa nel tuo documento. Prima di qualsiasi tag HTML. È possibile creare un’altra pagina in grado di accedere alle variabili di sessione impostate nella pagina precedente:

<code>
<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<?php
echo “Your name is ” . $_SESSION[‘name’];
// Outputs “Your name is John”
?>
</body>
</html>
</code>

Le variabili di sessione rimangono disponibili nel superglobale $ _SESSION fino alla chiusura della sessione.
Tutte le variabili di sessione globali possono essere rimosse manualmente usando session_unset (). Puoi anche distruggere la sessione con session_destroy (). I cookie sono spesso usati per identificare l’utente. Un cookie è un piccolo file che il server incorpora nel computer dell’utente. Ogni volta che lo stesso computer richiede una pagina attraverso un browser, invierà anche il cookie. Con PHP, puoi sia creare che recuperare i valori dei cookie. Crea cookies usando la funzione setcookie ():

setcookie(name, value, expire, path, domain, secure, httponly);

nome: specifica il nome del cookie
valore: specifica il valore del cookie
scadenza: specifica (in secondi) quando il cookie scade. Il valore: time () + 86400 * 30, imposterà il cookie in scadenza in 30 giorni. Se questo parametro viene omesso o impostato su 0, il cookie scadrà alla fine della sessione (quando il browser si chiude). L’impostazione predefinita è 0.
percorso: specifica il percorso del server del cookie. Se impostato su “/”, il cookie sarà disponibile all’interno dell’intero dominio. Se impostato su “/ php /”, il cookie sarà disponibile solo nella directory php e in tutte le sottodirectory di php. Il valore predefinito è la directory corrente in cui viene impostato il cookie.
dominio: specifica il nome di dominio del cookie. Per rendere il cookie disponibile su tutti i sottodomini di example.com, imposta il dominio su “esempio.com”.
sicuro: specifica se il cookie debba essere trasmesso o meno solo tramite una connessione HTTPS sicura. TRUE indica che il cookie verrà impostato solo se esiste una connessione sicura. L’impostazione predefinita è FALSE.
httponly: se impostato su TRUE, il cookie sarà accessibile solo tramite il protocollo HTTP (il cookie non sarà accessibile ai linguaggi di scripting). L’utilizzo di httponly consente di ridurre il furto di identità tramite gli attacchi XSS. L’impostazione predefinita è FALSE.

Il parametro name è l’unico richiesto. Tutti gli altri parametri sono opzionali. L’esempio seguente crea un cookie denominato “utente” con il valore “John”. Il cookie scadrà dopo 30 giorni, che è scritto come 86.400 * 30, in cui 86.400 secondi = un giorno. Il segno “/” indica che il cookie è disponibile in tutto il sito web.
Quindi recuperiamo il valore del cookie “utente” (utilizzando la variabile globale $ _COOKIE). Usiamo anche la funzione isset () per scoprire se il cookie è impostato:

<code>
<?php
$value = “John”;
setcookie(“user”, $value, time() + (86400 * 30), ‘/’);

if(isset($_COOKIE[‘user’])) {
echo “Value is: “. $_COOKIE[‘user’];
}
//Outputs “Value is: John”
?>
</code>

La funzione setcookie () deve apparire PRIMA del tag <html>. Il valore del cookie viene automaticamente codificato quando il cookie viene inviato e viene decodificato automaticamente al momento della ricezione. Tuttavia, non memorizza MAI informazioni sensibili nei cookie.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo:
close-alt close collapse comment ellipsis expand gallery heart lock menu next pinned previous reply search share star