sql >> Databasteknik >  >> RDS >> Mysql

Session_set_save_handler inte inställning

Det går inte att ställa in sessionssparhanteraren:

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

Eftersom dessa återuppringningar du vill registrera dig för inte existerar:

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

Det beror på att dina objektmetoder måste registreras korrekt som återuppringningar. En objektmetodåteranrop skrivs i form av en array med två element, den första är objektet, den andra en sträng av metodnamnet. Exempel från PHP-nät som liknar ditt:

$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 skrivs varje metod som en enda array med det första elementet $handler alltid.

Inifrån klassen kan du använda $this att hänvisa till samma objekt. Men innan du skriver ditt eget, kontrollera session_set_save_handler() PHP-manualsida för info, exempel och användarbidrag. Det finns olika sätt hur du kan organisera det för ditt ärende.



  1. Hur man analyserar databasindexens hälsa

  2. fail execute-sats med php och mysql

  3. Hur man ändrar en användare till Superuser i PostgreSQL

  4. Få ID:t för en ny post insatt i en databas från den returnerade Uri