TRY IT
<?php
session_name("first");
session_start();
echo session_status();
session_destroy();
echo session_status();
session_name("second");
session_start();
echo session_status();
session_destroy();
echo session_status();
?>
Я проверил его на XAMPP и возвращает значения 2121 значение сеанса активен, их нет, сессия активна, никто не существует.
Я поставил session_name() до session_start(), потому что установка имени, как и вы, не вступила в силу после того, как сеанс уже запущен. Я искал его, и он должен что-то сделать с файлом php.ini, где session.auto_start имеет значение «true».
Объяснение и дискуссия по этой теме можно найти здесь: http://php.net/manual/en/function.session-name.php - отметьте комментарии.
EDITED:
После повторного рассмотрения вашего редактирования, вы в принципе не создают две сессии, но только один, и он начинает со случайным именем «первый» или «второй». Вы можете уничтожить сеанс, но файл cookie останется. Я проверил ваш код на xampp, и он делает именно это. Сначала php запускает один сеанс и сохраняет cookie с временным значением «session», после перезагрузки страницы он снова загрузит один из двух параметров, но на этот раз он изменит существующее время файла cookie на «N/A». Вы должны искать решение, чтобы очистить вас куки на вашем домене после загрузки страницы следующим образом:
<?php
$session_name = rand(0,1) ? 'first' : 'second';
session_name($session_name);
session_start();
deleteCookies($session_name);
function deleteCookies($skip_this_one) {
if (isset($_SERVER['HTTP_COOKIE'])) {
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach($cookies as $cookie) {
$parts = explode('=', $cookie);
$name = trim($parts[0]);
if ($name == $skip_this_one) {
//skip
}else{
setcookie($name, '', time()-1000);
setcookie($name, '', time()-1000, '/');
}
}
}
//do something inside your session
//when done, stop the session the way you want
session_destroy();
}
?>
Это удалит все предыдущие куки и сохранить текущую сессию открытой.
Это решения переписан здесь: how to delete all cookies of my website in php
Надеется, что это помогает :)
Как проверить, если сессия уничтожается или нет? В ваших кодах говорится, что ваше второе имя сеанса даже не было применено к вашей сессии. –
Исходный код был моим скриптом выхода, чтобы уничтожить сеансы. Сессии запускаются в другом месте изначально –