Я посмотрел несколько постов с похожими названиями. проверка статуса сеанса с идентификатором сеанса, а также Как узнать, активен ли сеанс?, но они не кажутся конкретными для того, чего я пытаюсь достичь.
Я создаю корзину, в которую пользователи могут добавлять информацию независимо от того, вошли они в систему или нет — с помощью $_SESSION
а также session_id()
,
Добавление товаров в корзину добавляет записи в таблицу корзины покупок с идентификатором сеанса.
Короче говоря, как узнать из списка идентификаторов сеансов, какие сеансы активны, а какие нет (для использования в crontab), чтобы я мог удалить избыточные элементы из таблицы корзины покупок в базе данных?
Вы можете сделать это с помощью SessionHandler
, если у вас есть достаточно привилегий. (Работает в PHP> 5.4.0)
class MySessionHandler extends SessionHandler
{
public function __construct()
{
// database initialization code
}
public function destroy($id)
{
$ret = parent::destroy($id);
// database uninitialization code
return $ret;
}
}
Тогда в вашем коде:
ini_set('session.save_handler', 'files');
$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();
Прежде чем использовать это, я советую вам внимательно прочитать документацию, на которую я ссылался выше
Однако, поскольку вы создаете корзину покупок, было бы проще просто хранить информацию о корзине в переменных сеанса.
Других решений пока нет …