2013-12-16 7 views
0

Я сделал страницу, доступ к которой можно получить только после входа в систему. Теперь я сделал кнопку выхода из системы, которая работает, но я получаю сообщение об ошибке. Перенаправление работает после двух секунд, сеанс заканчивается, но я все еще получаю следующее сообщение об ошибке:Ошибка после окончания сеанса

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/u200098000/public_html/logout.php:2) in /home/u200098000/public_html/logout.php on line 3

Это мой код:

<?php 
session_start(); 
session_destroy(); 


echo "<h1>You succesfully logged out</h1>"; 
echo '<p> If you are not redirected automatically please click <a href="index.html">here</p>'; 

echo '<script>'; 

echo 'redirectTime = "2000";'; 
echo 'redirectURL = "/index.html";'; 
echo 'setTimeout("window.location = redirectURL",redirectTime);'; 

echo '</script>'; 


?> 

Большое спасибо за любую помощь.

+2

Удалить ** пробел ** в начале вашего кода, также в начале любого файла. – Leonardo

+0

http://stackoverflow.com/questions/8812754/cannot-send-session-cache-limiter-headers- уже принятый ответ заключается в том, что он не отправляет ничего в браузер перед началом сеанса. (например, что-то повторять) –

ответ

1

Headers already sentобычно означает, что какой-то выход был выполнен до начала сеанса. Проверьте, нет ли каких-либо файлов, имеющих какое-либо пустое пространство, и не делайте никаких команд print, echo и т. Д. Перед вызовом session_start(). Даже конечное пустое пространство в начале или конце включенного файла может привести к тому, что это произойдет. Один, который немного меня ударил много лет назад, был пустой пустой строкой внизу файла, включенного после закрытия ?> PHP-тега.

+0

Совершенно верно, я пойду с теми пробелами, которые у вас есть до

0

Чтобы использовать сеансы на основе файлов cookie, необходимо вызывать session_start() перед выдачей чего-либо в браузер.

Убедитесь, что у вас нет ничего, что выводит в браузер перед этими строками и удаляет любые ненужные пробелы из этого кода. Эта ошибка означает, что вы отправили что-то в браузер

+0

Похоже, что OP использует его после тега ' Crackertastic

Смежные вопросы