@Dadad

Как при переходе по ссылкам не выполнять window.onunload?

Пытаюсь при нажатии на кнопку "Не запоминать" сделать так, чтобы при закрытии сайта сессия стиралась. У меня получилось сделать это через window.onunload, но при переходе по внутрисайтовым ссылкам сессия тоже стирается. Вот код:
<?php
      if ($_SESSION['user']['dont-remember']) { ?>
        <script>
          window.onunload = () => {
            <?php unset($_SESSION['user']) ?>
          }
        </script> <?php
      } ?>


Я попробовал сделать так, но не работает:
let links = document.querySelectorAll('a:not([href*="#"])');
for (let link of links) {
    link.addEventListener('click', () => {
        window.onunload = null
    })
}
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
<?php
      if ($_SESSION['user']['dont-remember']) { ?>
        <script>
          window.onunload = () => {
            <?php unset($_SESSION['user']) ?> // этот кусок php выполнится на сервере,
                // при генерации страницы, еще ДО того как html будет отправлен пользователю
          }
        </script> <?php
      } ?>


При этом в коде страницы, которая прилетит в браузер получится вот так
window.onunload = () => {

          }
Естественно, ничего полезного этот код не сделает.

Исправить это сложно. Придется отмотать учебник на несколько уроков назад, и попытаться понять чем отличается код на сервере от кода на клиенте (в браузере).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
24 нояб. 2024, в 03:11
500 руб./за проект
24 нояб. 2024, в 01:35
5000 руб./за проект
24 нояб. 2024, в 01:24
500 руб./за проект