Как получить / установить session_id () или он должен быть сгенерирован автоматически?

У меня есть базовая обработка сеанса в моем приложении. На каждой странице я проверяю, зарегистрирован ли пользователь. Если они тогда, они уже идентифицированы с помощью $_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 ()