Я начинаю сессию с помощью следующей команды:
session_start();
когда пользователь входит в систему, я сохраняю информацию этого пользователя в $_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;
и когда пользователь выходит из системы, я делаю следующие команды, чтобы очистить $_SESSION
:
setcookie("PHPSESSID", "", time()-3600, "/" );
$_SESSION=array();
session_destroy();
session_write_close();
Теперь, когда я проверяю $_SESSION
после выхода из системы и перед входом в систему получается пустой array (), который должен быть именно таким. Но как только я захожу $_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
соответствует им. я session_start();
в верхней части каждой страницы, а следовательно, и на странице выхода из системы до session_destroy();
Я думаю, что это как-то связано с файлом cookie PHPSESSID, который сохраняется в моем браузере. Как я могу очистить эти пустые ключи и просто сохранить данные, сохраненные после session_start();
?
Отмените последовательность уничтожения вашей сессии.
Изменить:
$_SESSION=array();
session_destroy();
Для того, чтобы:
session_destroy();
$_SESSION=array();