я начинаю сессию следующей командой:
session_start();
, когда пользователь входит в систему I сохранить информацию этого пользователя в $_SESSION
с помощью следующего кода:
$_SESSION["logged_in_user"]=$username;
$_SESSION["logged_in_status"]="logged in";
$_SESSION["logged_in_business_id"]=$business_id;
$_SESSION["logged_in_business"]=$business_name;
и когда пользователь выходит из системы I выполните следующие команды, чтобы очистить $_SESSION
:
setcookie("PHPSESSID", "", time()-3600, "/");
$_SESSION=array();
session_destroy();
session_write_close();
сейчас когда я проверяю $_SESSION
после выхода из системы и до входа в систему, результатом является пустой массив(), что и есть то, что должно быть. Но как только я войти $_SESSION
не только показывает информацию, которую я сохраненное в нем, но и пустые значения с заполненными клавишами, как, например:
Array(
[logged_in_user] => aristocraticmasterminder
[logged_in_status] => logged in
[logged_in_business_id] => us-000000001
[logged_in_business] => Microsoft PLC Limited
[RoleID] =>
[RoleName] =>
[RoleDuty1] =>
);
Эти клавиши не имеют никакого значения, сохраненные в $_SESSION
соответствующие им , I session_start();
в верхней части каждой страницы, а следовательно, и на странице выхода из системы до session_destroy();
Я думаю, что это имеет какое-то отношение к файловому файлу PHPSESSID, который сохраняется в моем браузере. Как я могу очистить эти пустые ключи и просто сохранить данные, сохраненные после session_start();
?
ли вам 'session_start();' ', прежде чем $ _SESSION = массив(); session_destroy(); 'когда они выходят из системы? – AbraCadaver
Да I session_start(); перед входом в систему и session_destroy(); во время выхода из системы –
Можете ли вы показать минимальный код рабочего кода? –