Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Session_set_save_handler nicht eingestellt

Das Festlegen des Session-Save-Handlers schlägt fehl:

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

Weil diese Callbacks, für die Sie sich registrieren möchten, nicht existieren:

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

Das liegt daran, dass Ihre Objektmethoden ordnungsgemäß als Callbacks registriert werden müssen. Ein Objektmethoden-Callback wird in Form eines Arrays mit zwei Elementen geschrieben, das erste ist das Objekt, das zweite ein String des Methodennamens. Beispiel aus dem PHP-Netz, das Ihrem ähnlich ist:

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

Wie Sie sehen können, wird jede Methode als einzelnes Array mit dem ersten Element $handler geschrieben immer.

Innerhalb der Klasse können Sie $this verwenden auf dasselbe Objekt verweisen. Aber bevor Sie Ihren eigenen vollständig schreiben, überprüfen Sie den session_set_save_handler() PHP-Handbuchseite für Infos, Beispiele und von Benutzern beigesteuerte Notizen. Es gibt verschiedene Möglichkeiten, wie Sie das für Ihren Fall organisieren können.