sql >> Databáze >  >> RDS >> Mysql

Session_set_save_handler není nastaven

Nastavení obslužné rutiny uložení relace se nezdařilo:

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

Protože tato zpětná volání, která chcete zaregistrovat, neexistují:

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

Je to proto, že vaše objektové metody musí být správně zaregistrovány jako zpětná volání. Zpětné volání objektové metody je zapsáno ve formě pole se dvěma prvky, prvním je objekt, druhým je řetězec názvu metody. Příklad z PHP sítě, která je podobná té vaší:

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

Jak můžete vidět, každá metoda je zapsána jako jediné pole s prvním prvkem $handler vždy.

V rámci třídy můžete použít $this odkazovat na stejný předmět. Než však napíšete svůj vlastní, zkontrolujte session_set_save_handler() manuálová stránka PHP pro informace, příklady a poznámky přidané uživateli. Existují různé způsoby, jak to můžete uspořádat pro váš případ.



  1. Jak používat podmínku BETWEEN pomocí hlavního dotazu a dílčích dotazů

  2. Povolení podpory PostgreSQL v PHP na Mac OS X

  3. Chybné znaky při tisku textu z tabulky utf8_unicode_ci Mysql

  4. V Oracle AS alias nefunguje