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

Session_set_save_handler indstiller ikke

Indstilling af sessionslagringshåndtering mislykkes:

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

Fordi disse tilbagekald, du vil tilmelde dig, ikke eksisterer:

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

Det skyldes, at dine objektmetoder skal registreres korrekt som tilbagekald. Et objektmetodetilbagekald er skrevet i form af et array med to elementer, det første er objektet, det andet en streng af metodenavnet. Eksempel fra PHP-net, der ligner dit:

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

Som du kan se, er hver metode skrevet som et enkelt array med det første element $handler altid.

Inde fra klassen kan du bruge $this at henvise til det samme objekt. Men før du helt skriver dit eget, skal du tjekke session_set_save_handler() PHP manualside for info, eksempler og brugerbidrag. Der er forskellige måder, hvorpå du kan organisere det for din sag.



  1. mysqli_stmt::bind_result():Antallet af bindevariabler matcher ikke antallet af felter i forberedt sætning

  2. mysql2sqlite.sh Auto_Increment

  3. behold tekstområdets inputformat efter at have brugt mysql_real_escape_string til at gemme

  4. Hvordan sys.dm_exec_describe_first_result_set virker i SQL Server