в одном из моих проектов я храню временные данные в базе данных с идентификатором сеанса, и я должен удалить их, если его идентификатор сеанса не используется, есть ли простой способ проверить, используется ли идентификатор сеанса?
Проверьте, используется ли PHP SessionID?
Ответы (3)
Сохраните отметку времени последнего доступа и удалите те строки, время которых на X минут раньше текущего времени.
Вы можете назвать свою сессию с помощью session_name ([string $name]),
пример: session_name('myname')
,
а затем просто проверьте, есть ли идентификатор сеанса для этого имени с помощью session_id ([string $id]),
пример:
if(session_id('myname') != "")
echo session_id('myname');
else
//your code here
есть ли простой способ проверить, используется ли идентификатор сеанса?
Если вы используете обработчик сеанса по умолчанию, проверьте, присутствует ли файл сеанса и был ли он изменен с момента time()-session_cache_expire().
Однако гораздо лучшим решением было бы использование обработчика сеанса, привязанного к базе данных. Это гораздо более гибко, когда вы пытаетесь просмотреть данные сеанса извне сеанса, вы можете просто выполнить простое соединение, чтобы найти совпадающие данные, но правильный способ решить проблему — реализовать код управления сеансом в обработчике сеанса ( т.е. удалять данные при удалении сессии)!