sql >> Base de Datos >  >> RDS >> Mysql

Session_set_save_handler no se configura

La configuración del controlador de guardado de sesión falla:

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

Porque estas devoluciones de llamada en las que desea registrarse no existen:

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

Esto se debe a que los métodos de su objeto deben registrarse correctamente como devoluciones de llamada. La devolución de llamada de un método de objeto se escribe en forma de matriz con dos elementos, el primero es el objeto, el segundo es una cadena del nombre del método. Ejemplo de PHP net que es similar al tuyo:

$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')
);

Como puede ver, cada método se escribe como una sola matriz con el primer elemento $handler siempre.

Desde dentro de la clase puedes usar $this para referirse al mismo objeto. Pero antes de escribir completamente el suyo propio, compruebe el session_set_save_handler() Página del manual de PHP para obtener información, ejemplos y notas aportadas por los usuarios. Hay diferentes formas de organizar eso para su caso.