Mysql
 sql >> Database >  >> RDS >> Mysql

Session_set_save_handler non impostato

L'impostazione del gestore di salvataggio della sessione non riesce:

session_set_save_handler("sess_open", "sess_close", "sess_read", "sess_write", "sess_destroy", "sess_gc")

Perché questi callback a cui vuoi registrarti non esistono:

var_dump(is_callable("sess_open")); # FALSE

Questo perché i metodi dell'oggetto devono essere registrati correttamente come callback. Un callback di un metodo oggetto viene scritto sotto forma di un array con due elementi, il primo è l'oggetto, il secondo una stringa del nome del metodo. Esempio da PHP net simile al tuo:

$handler = new FileSessionHandler();
session_set_save_handler(
    array($handler, 'open'),
    array($handler, 'close'),
    array($handler, 'read'),
    array($handler, 'write'),
    array($handler, 'destroy'),
    array($handler, 'gc')
);

Come puoi vedere, ogni metodo è scritto come un singolo array con il primo elemento $handler sempre.

Dall'interno della classe puoi usare $this per riferirsi allo stesso oggetto. Ma prima di scrivere completamente il tuo, controlla session_set_save_handler() Pagina manuale di PHP per informazioni, esempi e note fornite dagli utenti. Esistono diversi modi per organizzarlo per il tuo caso.