Правильное управление сессией php для перенаправления - PullRequest
0 голосов
/ 06 июня 2018

В своем приложении PHP я интенсивно использую сеансы для сохранения информации во время перенаправления:

  • Сохранение информации о категории, поэтому после перенаправления отображается правильная вкладка и / или форма
  • Сохранение информации, когда вы вошли в систему для доступа к некоторым функциям
  • Сохранение информации об ошибках и предупреждениях, чтобы они отображались после выполнения всех внутренних операций и перенаправления на главную панель управления

При реализации этого я вызывал session_start примерно в 40 сценариях, но кроме случайного вызова unset() для переменной $_SESSION я не закрывал сессию никаким образом.

Теперь, пока я былИзучая проблемы с производительностью на моем сервере, я обратил внимание на то, что недостаточное значение session_write_close() может быть проблемой (даже если вопрос касался Apache Linux, а мое веб-приложение размещено на сервере Wamp).и что, в конце концов, даже если это не является причиной, было бы разумно попытаться закрыть сессию как можно скорее и частоru как могу.

Мне интересно, как определить точки, в которых я могу безопасно уничтожить / перезапустить сеанс?И как лучше всего это сделать?

Имейте в виду, я хочу, чтобы количество открытых сеансов не было проблемой, поэтому я хочу быть уверенным, что оно будет минимальным.

1 Ответ

0 голосов
/ 07 июня 2018

Обычно мы не закрываем сессию, если это не очень важно, так как сессия будет закрыта, как только закроется браузер.Из-за недостатка знаний о вашем приложении мы не можем прокомментировать точную необходимость закрытия сессии в скрипте.Учитывая события, которые вы описали, было бы лучше использовать куки в определенных ситуациях, таких как «Сохранение информации, когда вы вошли в систему для доступа к некоторым функциям».Относительно ошибки и предупреждений;Вы можете удалить некоторые переменные сеанса после отображения сообщений на странице панели инструментов.

Для «Сохранения информации о категории, чтобы правильная вкладка и / или форма отображались после перенаправления», вы можете рассмотреть возможность использования параметров в URL для отображения нужных вкладок вместо использования переменной сеанса.

Если вы планируете использовать session_write_close (), тогда в этом случае вам нужно будет выполнить session_start, если вам нужен доступ к сеансу в том же сценарии во второй раз.Использование session_write_close () предназначено только для разрешения блокировки сеанса в случае, если два сценария пытаются получить доступ к одному и тому же сеансу одновременно.Поэтому вы можете описать, относится ли это к вашей заявке или нет.

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