2009-10-28 2 views
0

HI,PHP Session помощь

При попытке выйти из системы, используя следующий код в IE это по некоторым причинам только петли и петли и петли и не остановишь.

<?php $_SESSION = array(); session_destroy(); ?> 

<meta http-equiv="refresh" content="0;index.php"> 

По-прежнему возникают ошибки.

Кажется, что в IE это держать освежающий каждый второй, если я изменю 0 до 20 ИТС каждые 20 секунд, но дело в том, что не попадает в index.php он говорит на текущем экране, который logout.php

+2

Ну, если предположить, что это index.php, это то, что вы говорите это делать. Какой файл это? –

+0

Этот файл называется logout.php –

+0

ok. Вы можете видеть, где он зацикливается? Может ли быть, что index.php, в свою очередь, вызывает logout.php? –

ответ

5

Заметил, что вы не вызываете session_start() на своей странице в любом месте. Вы не можете уничтожить сеанс, не запуская его сначала.

+0

+1: как контр-интуитивно понятное имя функции, это, скорее всего, проблема. (Вероятно, он должен быть назван 'session_init()') – Powerlord

+0

Я не нахожу большой разницы между '_start' и' _init' ... И я не считаю 'session_start' неинтуитивным именем. –

0

Изменить ваш контент = "от 0 до 20. Попробуйте просмотреть источник, чтобы убедиться, что вы на странице не показываете этот метатег. Если это так, исправьте ошибку. Если это не так, то это что-то еще.

4

Вместо того, чтобы использовать мета обновления, то почему бы не направить их обратно в index.php с header?

<?php 
    $_SESSION = array(); 
    session_destroy(); 
    header('Location: index.php'); 
?> 
+0

Я всегда добавляю 'exit' после вызова' header() ', даже если это конец кода, если кто-то позже расширяет его и обнаруживает проблемы. –

+0

Согласен, спасибо, что указал. Некоторые боты (т. Е. Googlebot) не следуют за заголовками. Я слышал о том, что Googlebot удаляет записи и тому подобное, потому что люди их оставили. – Psilokan