Следует ли всегда вызывать session_start?

Я заметил, что на моем веб-сервере есть папка tmp/, содержащая тысячи и тысячи файлов идентификаторов сеансов. Поэтому я подумал, что, вероятно, лучше вызывать session_start() только тогда, когда я действительно что-то пишу в сеанс (логин), а затем вызывать его только в том случае, если есть активный пользователь, вошедший в систему.

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

session_start() должен вызываться, если вы используете какие-либо данные сеанса, и имеет смысл вызывать его в начале скрипта (в зависимости от архитектуры вашего приложения).
Nigel Ren 16.12.2020 17:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
101
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поэтому я подумал, что, вероятно, лучше вызывать session_start() только тогда, когда я действительно что-то пишу в сеанс (логин), а затем вызывать его только в том случае, если есть активный пользователь, вошедший в систему.

Если вы настроили систему входа в систему каким-либо неопределенно традиционным способом, который включает сеансы, невозможно определить, есть ли у вас авторизованный пользователь, без вызова session_start.

всего несколько человек говорят, что всегда следует вызывать session_start(). Имеет ли это смысл?

Да. Если вы собираетесь взаимодействовать с сеансом — будь то запись в сеанс или чтение из него — вызовите session_start().

Большинство веб-сайтов, которые имеют дело с сеансами входа в систему, размещают сообщение «Вы вошли в систему как Боб: нажмите здесь, чтобы выйти» или «Вы не вошли в систему: нажмите здесь, чтобы войти» на каждой странице, поэтому большинству веб-сайтов потребуется вызвать sessions_start() на каждой странице.

И разве это не проблема с производительностью, если все эти идентификаторы сеансов хранятся?

Нет.

Это влияет на производительность, но это влияние, вероятно, незначительно. Если это становится проблемой, тогда беспокойтесь об этом.

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

Другие вопросы по теме