Вызов функции перед gc - PullRequest
0 голосов
/ 08 ноября 2019

Я хочу обновить базу данных (пользователь онлайн = 0), когда данные сеанса автоматически удаляются сборщиком мусора (или session_regenerate_id (true))

Я использую CodeIgniter. Я понимаю, что фреймворк расширяет нативные классы php и некоторые функции могут быть добавлены

class CI_Session_my_driver extends CI_Session_driver implements SessionHandlerInterface {
...
public function gc($maxlifetime)
    {
        // Prevent previous QB calls from messing with our queries
        $this->_db->reset_query();

// **The base should be updated here**
file_put_contents('test.txt', 'run at '.date('d.m.y g:i:s'),FILE_APPEND);
$CI =& get_instance();
$ci_token = $CI->session->userdata('token');
$CI->db->update('user', array('online' => 0), array('ci_token'=>$ci_token));

        return ($this->_db->delete($this->_config['save_path'], 'timestamp < '.(time() - $maxlifetime)))
            ? $this->_success
            : $this->_fail();
    }
...

Но это не работает. просто не бежит. Мне нужно найти момент до того, как данные сеанса будут удалены, чтобы обновить базу данных (потому что это требуется для условия where).

Спасибо google переводчику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...