Как уменьшить огромное количество файлов сессий?

Rooner

Новичок
При заходе на сайт/страницу через браузер, с помощью session_start() создается сессия и далее все данные записываются в нее и хранятся в 1 файле в течении 3 суток.
Но когда заходит робот яндекса/гугла, или производится сканирование сайта, то для каждого запроса создается отдельная сессия с отдельным файлом. В результате чего образуются миллионы файлов сессий.
По идее если сократить время жизни сессий, то это уменьшит количество файлов, но делать это нельзя т.к. снизит удобство сайта.
Что можно сделать в данном случае, чтобы сократить количество файлов сессий?
Может как-то принудительно указывать id сессии, чтобы все запросы робота обращались к 1му файлу сессии?
 

Фанат

oncle terrible
Команда форума
Можно детектить бота и не стартовать для него сессию
Можно стартовать сессию только покупателям и авторизованным пользователям.
Можно не записывать в сессию "все данные", а спокойно подтягивать их из базы и вместо раздутых сессий просто авторизовывать по куке .
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
просто не стартовать сессию для пользователей без куки PHPSESSID
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
кука - это заголовок запроса, приходит из браузера перед стартом работы скрипта и парсится в $_COOKIES при первом обращении к массиву,
ее можно проверить по isset($_COOKIES['PHPSESSID']), а session_start() - это синтаксический сахар для set_cookie() и file_get_contents(), ее можно вызвать просто при успешной аутентификации (аутентификация - проверка логина и пароля или идентификация через соцсети)
 
Последнее редактирование:

Фанат

oncle terrible
Команда форума
это заголовок запроса, приходит из браузера
а в браузере он откуда возьмется, если
не стартовать сессию для пользователей без куки
— Ты где деньги берешь?
— В тумбочке?
— А кто в тумбочку деньги ложит?
— Жена!
— А у нее деньги от куда?
— Я ей даю!
— А у тебя откуда?
— Да из тумбочки же!

Гриша, мне кажется weregod резонную поправку сделал, а ты зря кричишь
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
убрал эмоционирование :)
сессию после авторизации пущать не получится, для авторизации нужно знать пользователя,
надо при аутентификации: сделать запрос по логину-паролю можно без сессии, потом провести авторизацию на право логиниться, и по результату авторизации создать сессию
 
Сверху