У меня есть базовая обработка сеанса в моем приложении. На каждой странице я проверяю, зарегистрирован ли пользователь. Если они тогда, они уже идентифицированы с помощью $_SESSION['user_id']
, а их логин / выход из системы записывается в таблицу MySQL.
Я также хотел бы записать посещения гостей (не вошедших в систему) на основе уникального идентификатора. Я предположил, что однажды session_start()
вызывается, что внутренний session_id
автоматически создается и вызов вызывающего session_id()
я мог бы получить это. Но это просто дает ошибку «неопределенной переменной», поэтому я предполагаю, что мне нужно установить ее вручную ..? Если да, то каков наилучший способ, чтобы он был уникальным идентификатором или каким-то обычным методом?
Спасибо за любую помощь …
Существует два способа использования сеансов и идентификаторов сеанса в PHP:
1 – Автогенерировать идентификатор сеанса и получить его:
session_start(); $id = session_id();
2 – Установите идентификатор сеанса вручную, а затем запустите его:
session_id( 'mySessionId' ); session_start();
Если вы собираетесь установить идентификатор сеанса, вы должны установить его перед вызовом session_start (); Если вы собираетесь генерировать случайный session_id (или продолжить одно уже начатое в предыдущем запросе страницы), а затем получить этот идентификатор для использования в другом месте, вы должны вызвать session_start()
прежде чем пытаться использовать session_id()
для получения идентификатора сеанса.
Здесь вы можете видеть, что это работает для меня (сеанс запускается тихо): http://sandbox.phpcode.eu/g/f6b6b.php
Вы забыли начать свою сессию, возможно
Ну, это может быть немного странно, но когда мне нужен уникальный идентификатор, я использую uniqid ()