Я использую сессии для систем входа в PHP. Во всех примерах входа в систему люди напрямую используют функцию "session_start()
". Но я в замешательстве.
=============================================
На локальном хосте у меня есть эти файлы;
http://localhost/app1/page1.php
http://localhost/app1/page2.php
http://localhost/app2/page2.php
=============================================
В app1/page1.php
я запускаю сеанс и устанавливаю переменную.
session_start();
session_regenerate_id( true );
$_SESSION[ 'name' ] = 'this is my name';
=============================================
В app1/page2.php
и app2/page2.php
я запускаю сеанс и получаю значение этой переменной.
session_start();
echo 'name: ' . $_SESSION[ 'name' ];
=============================================
Я открываю http://localhost/app1/page1.php, а затем http://localhost/app1/page2.php, и это прекрасно работает. Но после этого я открываю http://localhost/app2/page2.php,, и на экране появляется надпись «это мое имя», и это неправильно. Потому что это другое приложение, и я не хочу, чтобы app2 достиг сеанса app1.
Как я могу решить эту проблему? Я не хочу использовать разные имена переменных для каждого приложения. Должно быть другое хорошее решение, я думаю. Я могу перегенерировать ID в app2 / page1.php, но если кто-то попытается открыть app2 / page2.php, то после открытия app1 он может попасть в app2, и мне это не поможет.
Спасибо.