Очищается сессия PHP после отправки любого POST запроса. Как исправить?

Ссылка скопирована
1 ответ

Здравствуйте!
Такая проблема, на сайте при любой отправке POST запроса на любую страницу и любого содержимого, после этого происходит полное очищение php сессии. Что такое может быть?

Веб сервер Nginx + PHP 7.4

Заранее спасибо!

Дополнительно:

Может обработчик не имеет session_start()? На каком движке написано, или ручная поделка?

  • ThunderCat, и symfony и bitrix, на любом движке такая ерунда. Пока не выполнится post запрос, сессия работает хорошо.
  • ruslanyugov, Похоже на настройки пыха, хотя и нжинкс исключать нельзя. Запустите через встроенный в пых сервер пару скриптов с пост запросами, убедитесь что это не пхп, можно попробовать так же запустить апач и проверить как через него работает, короче вычислить точку жеппы, если мы исключаем программную ошибку...
  • Для теста создай в каталоге веб сервера, где включена поддержка php свой файл
    test.php
    <?php session_start(); echo session_id(); ?>

    <?php session_start(); echo session_id(); ?>

    затем открой ссылку с этим файлом в браузере
    site/test.php
    он покажет идентификатор, если нажать F5 идентификатор должен остаться прежним, это значит где то в коде на сайте у тебя банально очищается идентификатор

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

  • Возможно у пользователя, под которым запущен nginxphp-fpm - нет прав на запись в /var/lib/php/session
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Алексей Денисов Ответ

    Для очистки сессии PHP после отправки любого POST запроса, можно использовать следующий подход:

    1. Создайте скрипт, который будет обрабатывать POST запросы и после их выполнения очищать сессию. Например, создайте файл clear_session.php.

    2. Внутри файла clear_session.php добавьте следующий код:

    session_start();
    session_unset();
    session_destroy();

    session_start(); session_unset(); session_destroy();

    3. Теперь необходимо включить этот скрипт в обработку POST запроса. Для этого в файле, который обрабатывает POST запросы (например, process_form.php), добавьте следующий код в начало файла:

    include 'clear_session.php';

    include 'clear_session.php';

    Таким образом, при каждой отправке POST запроса, сессия будет очищаться и данные будут сбрасываться. Это позволит избежать сохранения лишних данных в сессии и обеспечит более безопасную работу с данными.

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

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно