Sto cercando di salvare un oggetto in $_SESSION
, ma il seguente:php risparmio oggetto in sessione
<?php
$user = db->load($username, $pass) ;
$_SESSION[ 'user' ] = $user ;
# on subsequent page loads:
$user = $_SESSION[ 'user' ] ; #retrieve the user from session
Purtroppo questo non funziona.
Lo script ha tentato di eseguire un metodo o accedere a una proprietà di un oggetto incompleto. Assicurati che la definizione di classe "Utente" dell'oggetto che stai cercando di operare sia stata caricata _before_ unserialize() venga chiamata o fornisca una funzione __autoload() per caricare la definizione di classe
A meno che non si usi serialize():
<?php
$user = db->load($username, $pass) ;
$_SESSION[ 'user' ] = serialize($user) ;
# on subsequent page loads:
$user = unserialize($_SESSION[ 'user' ]) ; #retrieve the user from session
Suppongo che sia necessario un serializzazione perché le informazioni sulla sessione vengono salvate sul disco. Ma il PHP non dovrebbe essere abbastanza intelligente da serializzare le cose da solo?
E con l'uso di serializzare/_ unserialize _, è questo andare a lavorare adesso in modo affidabile? O ho bisogno di un metodo __serialize()
nella mia classe PHP?
Hai mai pensato di utilizzare Zend.Session? –