Perché UnexpectedValueException
viene generato in session_start()
?UnexpectedValueException in session_start() php non riuscito serializzazione SPLObjectStorage
devo oggetto che ha la proprietà di SPLObjectstorage
. Tale oggetto è assegnato alla sessione come
Sospetto che la sessione interna serializzi il problema di fronte per decodificarlo. Memorizzo la sessione nel database e sembra che stia serializzando lo objectStorage
ma non possa decodificarlo.
dati di sessione Esempio
self|O:4:"User":8:{s:5:"�*�id";N;s:7:"�*�nick";N;s:13:"�*�reputation";i:1;s:11:"�*�password";N;s:8:"�*�email";N;s:7:"�*�crud";O:10:"CRUDobject":2:{s:13:"�*�fieldCache";a:0:{}s:13:"�*�dependency";r:1;}s:7:"�*�auth";N;s:11:"�*�roleList";C:11:"RoleStorage":23:{x:i:1;N;,r:13;;m:a:0:{}}}
Rolestorage
è estende su SPLObjectstorage
session_decode()
sul sopra stringa restituisce anche false
tutte le idee?
rimuovere l'attributo roleList
rende serializzare correttamente.
Se io faccio parte
$sr = serialize($roles); // $roles is RoleStorage object
var_dump($sr);
var_dump(unserialize($sr));
Esso stampa string 'C:11:"RoleStorage":22:{x:i:1;N;,r:3;;m:a:0:{}}' (length=46)
e poi viene a mancare con lo stesso messaggio, mentre deserializzazione. Non ho idea del perché questo sta accadendo.
Nota: durante il collegamento dell'oggetto a RoleStorage
ho utilizzato l'oggetto stesso come dati. Significa che è memorizzato come riferimento. Non so come (se) fa serialize()
gestisce internamente questo.
Si prega inoltre di aggiungere un [hexdump dei dati della sessione] (http://stackoverflow.com/questions/1057572/how-can-i-get-a-hex-dump-of-a-string-in -PHP). Anche la 'UnexpectedValueException' ha un messaggio. La tua domanda non contiene quel messaggio finora, per favore aggiungilo. Spesso contiene informazioni importanti sul problema quando non è serializzato. – hakre