CakePHP – тайм-аут сеанса

Я использую в core.php для выхода из системы через 30 минут:

Configure::write('Session', array( 'defaults' => 'php', 'timeout' => 30, // auto logout after 30 minutes 'cookieTimeout' => 1440, // session cookie 24 hours 'autoRegenerate' => true // regenerate session )); 

Эта работа прекрасна. И я хотел бы отобразить обратный отсчет времени ожидания сеанса, например, в заголовке страницы рядом с кнопкой выхода. Может ли кто-нибудь помочь мне?

Например, в default.ctp.

 <body> <div id="container"> <div id="header"> <div style="float: right;"> <?php // display countdown of session timeout: // You will be automatically logged off for (time to expire cookie timeout) // Logout button echo $this->Html->link(__('Logout'), array('controller' => 'users', 'action' => 'logout'), array('escape' => false)); ?> </div> </div> <div id="content"> </div> </div> 

Поскольку люди суровы на вас, и это ваш первый раз здесь, я буду немного нежным по этому поводу. Я не даю вам ответа, но ключевые указатели:

  • Вы можете прочитать $this->Session->read('Config.time') чтобы получить $this->Session->read('Config.time') метку unix, когда будет завершена сессия.
  • Некоторая библиотека javascript, такая как moment.js подходит для манипулирования временем, обратным отсчетом и т. Д. Check fromNow – вы можете использовать его и для будущего.

Надеюсь это поможет 😉

для этого вы можете так писать

Настроить :: write ('Session.timeout', '120');

Configure :: write ('Security.level', 'medium');

если «высокий», то тайм-аут сеанса в «Session.timeout» x 10,

если «средний», то тайм-аут сеанса в «Session.timeout» x 100,

если «низкий» тайм-аут сеанса в «Session.timeout» x 300

Это также может быть проблемой с настройками php.

Здесь есть ответ SO, в котором подробно описывается, как обойти это:

https://stackoverflow.com/a/3585057/1291499