Mysql
 sql >> Base de données >  >> RDS >> Mysql

Session_set_save_handler non défini

La configuration du gestionnaire d'enregistrement de session échoue :

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

Parce que ces rappels auxquels vous souhaitez vous inscrire n'existent pas :

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

En effet, vos méthodes d'objet doivent être correctement enregistrées en tant que rappels. Un rappel de méthode objet est écrit sous la forme d'un tableau avec deux éléments, le premier est l'objet, le second une chaîne du nom de la méthode. Exemple de PHP net similaire au vôtre :

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

Comme vous pouvez le voir, chaque méthode est écrite comme un seul tableau avec le premier élément $handler toujours.

Depuis la classe, vous pouvez utiliser $this pour désigner le même objet. Mais avant d'écrire entièrement le vôtre, vérifiez le session_set_save_handler() Page de manuel PHP pour des infos, des exemples et des notes d'utilisateurs. Il existe différentes façons d'organiser cela pour votre cas.