Предупреждать пользователя, если сеанс истекает, возможность возобновления сеанса

Я искал весь день для PHP или JavaScript-решения для этого.

Я хотел бы предупредить пользователя о том, что их сеанс близок к тайм-ауту (всплывающее окно), возможность продлить время сеанса.

  • Как реализовать базовый «длинный опрос»?
  • Как сохранить ведущие нули в PHP integer
  • MySQL против MySQLi при использовании PHP
  • Как прокомментировать файл laravel .env?
  • «Предупреждение: mysql_query (): предоставленный аргумент не является допустимым ресурсом MySQL-Link"
  • Как фильтровать выбранный набор узлов с помощью функции PHP?
  • Вот визуальный, если вам нужен он на этой странице

    РЕДАКТИРОВАТЬ:

    jQuery является основой, если это помогает

    3 Solutions collect form web for “Предупреждать пользователя, если сеанс истекает, возможность возобновления сеанса”

    Это относительно легко:

    • Создайте таймер JavaScript, который запускается (продолжительность сеанса – 5 минут), используя setTimeout

    • Попросите функцию setTimeout отобразить диалоговое окно подтверждения, например, с помощью jQuery UI Dialog

    • Если пользователь хочет продлить сеанс, сделайте запрос Ajax в файл PHP. Если файл использует сеансы, это будет работать, чтобы «коснуться» времени сеанса

    • После выполнения запроса установите еще один setTimeout который будет срабатывать, когда сессия снова закончится.

    Я бы предложил другой подход; просто обновите сеанс для пользователя в любом случае. Большинство нежелательных сеансов смерти происходят из-за

    • длинный телефонный звонок
    • неожиданный визит
    • встреча

    и с диалогом подтверждения, сеанс уже был бы мертв к моменту, когда ваш пользователь вернется – добавив только путаницу.

    Вместо:

     var refresh_session = function () { $.get("/refresh_session.php"); }, fifteen_minutes = 15 * 60 * 1000; setInterval(refresh_session, fifteen_minutes); 

    -> счастливые пользователи! 🙂

    Вы можете обойти проблему, имея скрипт, который возвращает изображение размером 1 × 1 на таймере JS. Идея заключается в том, что вы начинаете с PHP-скрипта, подобного этому (не уверен, что заголовок вызывает здесь именно правильно ..):

     header("ContentType: image/gif"); passthru("my-1x1.gif"); 

    Теперь, если функция javascript setInterval вызывает этот скрипт на подходящем интервале (т.е. меньше интервала GC сеанса). Поскольку изображение подается с PHP, оно обновляет ваш сеанс, поэтому теоретически сеансы пользователя не заканчиваются до тех пор, пока они остаются на вашем сайте.

    PHP is the Best Programming Language in the world.