Тот же домен, другая папка PHP-сессия

Я хочу установить другой идентификатор сеанса в зависимости от того, в какой папке находится пользователь.

Например, у меня есть домен https://example.com, который имеет папки / app1, / ​​app2 и т. Д., А затем несколько файлов внутри каждой папки приложения. Я хотел бы установить один идентификатор сеанса, который будет использоваться со всеми файлами в приложении 1, и другой идентификатор сеанса, который будет использоваться в приложении 2.

Это можно сделать?

Solutions Collecting From Web of "Тот же домен, другая папка PHP-сессия"

Задайте путь в файле cookie сеанса session_set_cookie_params . До session_start конечно.

Если /app1 и /app2 содержат полностью несвязанные приложения, вы можете /app2 совершенно несвязанные сеансы как с помощью функции session_name() , так и функции PHP. Как правило, сеансы работают с файлом cookie под названием PHPSESSID . Вместо этого в /app1 вы можете запускать session_name('session_app_1') а в /app2 вы можете запускать session_name('session_app_2') . Теперь сеансы в двух приложениях будут полностью не связаны.

Предупреждение: в документации PHP говорится, что функция session_name() стоит дорого. Возможно, оставьте сеанс с именем по умолчанию в более занятом приложении и переименуйте его только в более тихое приложение.

u может использовать идею о том, что $_SESSION var является массивом:

 $_SESSION['app1'] = ... $_SESSION['app2'] = ... //etc etc 

Я не уверен, что я правильно понял проблему, но вы можете попробовать проверить, будет ли она в app1, app2 и т. Д., А затем получить часть интересующей вас строки и использовать ее для установки сеанса , например, с помощью $_SERVER['REQUEST_URI'] или $_SERVER['SCRIPT_NAME'] .

Если вы уже это делаете, и ваша проблема в том, что он просто не установит сеанс?

Настройка session_save_path для разных каталогов будет служить вашей цели. Например, вы можете установить его в подкаталог в каждом каталоге, т. Е. относительный путь. В противном случае для совместного использования сеансов между каталогами установите session_save_path на один и тот же полный путь. Работает на меня..