PHP Manipolazione dei dati di sessione


Esempio

La variabile $_SESSION è una matrice e puoi recuperarla o manipolarla come un normale array.

<?php
// Starting the session
session_start();

// Storing the value in session
$_SESSION['id'] = 342;

// conditional usage of session values that may have been set in a previous session
if(!isset($_SESSION["login"])) {
    echo "Please login first";
    exit;
}
// now you can use the login safely
$user = $_SESSION["login"];

// Getting a value from the session data, or with default value, 
//     using the Null Coalescing operator in PHP 7
$name = $_SESSION['name'] ?? 'Anonymous';

Vedi anche Manipolazione di una matrice per maggiori informazioni su come lavorare su un array.

Si noti che se si memorizza un oggetto in una sessione, è possibile recuperarlo con garbo solo se si dispone di un caricatore automatico di classe o se è già stata caricata la classe. In caso contrario, l'oggetto verrà visualizzato come tipo __PHP_Incomplete_Class , che in seguito potrebbe causare arresti anomali . Vedi Namespacing e Autoloading sull'auto- caricamento.

Avvertimento:

I dati della sessione possono essere dirottati. Questo è delineato in: Sicurezza Pro PHP: dai principi di sicurezza delle applicazioni all'implementazione della difesa XSS - Capitolo 7: Prevenzione del dirottamento della sessione Quindi si consiglia vivamente di non memorizzare mai alcuna informazione personale in $_SESSION . Ciò includerebbe in modo critico i numeri delle carte di credito , gli ID di governo e le password ; ma si estenderebbe anche a dati meno ipotetici come nomi , e-mail , numeri di telefono , ecc. che consentirebbero a un hacker di impersonare / compromettere un utente legittimo. Come regola generale, utilizzare valori senza valore / non personali, come gli identificatori numerici, nei dati di sessione.