Как полностью удалить пустой ключ из массива $ _SESSION в php?

Я начинаю сессию с помощью следующей команды:

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();?

1

Решение

попробуй это

    unset($_SESSION['name']);

Как удалить переменную из массива сессии PHP

0

Другие решения

Отмените последовательность уничтожения вашей сессии.

Изменить:

$_SESSION=array();
session_destroy();

Для того, чтобы:

session_destroy();
$_SESSION=array();
0

По вопросам рекламы [email protected]