Почему путь cookie не вступает в силу? - PullRequest
3 голосов
/ 20 ноября 2011

В моем корне Apache public_html есть 2 проекта. Один из них - "/ project1", а другой - "/ project2". Проект 2 просто дублирует проект 1, но с некоторыми изменениями для достижения другой цели. У них одинаковый код ядра, поэтому используемые имена сессий одинаковы.

Я инициализирую сессию таким образом для проекта 1:

ini_set("session.cookie_path","/project1");
session_name("sid");
session_start();

И очень похоже на проект 2:

ini_set("session.cookie_path","/project2");
session_name("sid");
session_start();

Пути к файлам cookie не равны, поэтому даже при одном и том же имени файла cookie (здесь это «sid») PHP должен различать их.

Но самое интересное, что когда администратор в проекте 1 входит в систему, то администратор в проекте 2 также интересно входит в систему.

1 Ответ

1 голос
/ 24 ноября 2011

Некоторым браузерам не нравятся куки-файлы с путем и без истечения срока действия, поэтому вы можете добавить:

ini_set('session.cookie_lifetime', 3600);

Сеансовый куки-файл отправляется только один раз PHP (если отсутствует), чтобы заставить PHPотправить файл cookie с обновленным временем истечения, после session_start () вы можете добавить:

session_regenerate_id();
...