уничтожить переменную сеанса для выхода

0

Я хочу очистить значение сеанса перед перенаправлением. В моем logout.php у меня есть код сеанса. Этот код работает красиво. Если я перенаправляю код кода. Если я включаю код перенаправления, он получает перенаправление перед сеансом убийства.

<?php
session_start();
session_unset(); 
$_SESSION = array();
session_destroy();
   /*
     echo ("<SCRIPT LANGUAGE='JavaScript'>
       window.location.href='login.php';
       </SCRIPT>"); 
    */ 
?>
Теги:
session

4 ответа

2

Вам нужно сделать это через заголовки php и поместить его в оператор if, поэтому после уничтожения сеанса он перенаправит вас на login.php

<?php
session_start();
session_unset(); // Also there is no need for unsetting
$_SESSION = array(); //This is useless too.

// use php header instead of javascript
if(session_destroy()) //once you destroy session it automatically unsets all keys
{
 header("location: login.php");
}
?>
  • 0
    заголовок ("location: login.php"); не работает
0

Я считаю, что ответ Рахил-хана правильный. Если заголовок ("Location: login.php") не работает, проверьте, имеет ли ваш код пробел перед открытием тега php

<?

Ничего не может быть отправлено в браузер перед заголовками. Если вы отправляете что-либо в браузер, перенаправление заголовка не будет работать.

0

Использовать ob_start()

Эта функция включит буферизацию вывода. В то время как буферизация вывода активна, никакой вывод не отправляется из сценария (кроме заголовков), вместо этого вывод сохраняется во внутреннем буфере.

Содержимое этого внутреннего буфера может быть скопировано в строковую переменную, используя ob_get_contents(). Чтобы вывести то, что хранится во внутреннем буфере, используйте ob_end_flush(). Кроме того, ob_end_clean() будет молча отбрасывать содержимое буфера.

<?php ob_start(); ?>
<?php
session_start();
session_unset();
$_SESSION = array();

if(session_destroy())
{
 header("location: login.php");
}
?>
  • 0
    Все еще проблема может
  • 0
    Ваш код после тега <html>?
Показать ещё 8 комментариев
0

Вызовите перенаправление после сеанса, как это происходит

<?php
if(session_destroy())
{
header("location: login.php");
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню