У меня есть API, где я передаю идентификатор сеанса назад и вперед между вызовами. Я настроил сессию так:
// start API session
session_name('apikey');
session_id($data['apikey']); // required to link session
session_start();
Хотя я назвал свой сеанс и передаю идентификатор сеанса через GET и POST, используя имя, PHP не возобновляет этот сеанс автоматически. Он всегда создает новый, если я не установил явно установленный идентификатор сессии.
На сайте www.php.net я нашел несколько старых комментариев пользователей, в которых говорилось, что если идентификатор сессии не является первым параметром, PHP не установит его автоматически. Это кажется странным, но даже когда я звонил попробовал, это все равно не работало: rest_services.php?apikey=sdr6d3subaofcav53cpf71j4v3&q=testing
Я использовал PHP годами, но меня немного смущает, почему мне нужно явно установить сеанс с session_id()
, когда я называю сеанс и передаю его ключ соответствующим образом.
UPDATE
Кажется, я не был ясен. У меня вопрос, почему установка идентификатора сеанса с помощью session_id()
требуется, когда я передаю идентификатор, используя имя сеанса apikey
, через $_GET
или $_POST
. Теоретически это ничем не отличается от PHP SID
, когда куки отключены. Но для меня это не сработает, если я не установлю идентификатор сессии. Почему?