Проблема с Header()

  • Автор темы web_VIP
  • Дата начала
W

web_VIP

#1
Пишет ошибку
Код:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\ccs\index.php:20) in Z:\home\localhost\www\libraries\lib_admin.php on line 14
И так уже не первый раз что я сталкиваюсь с этой ошибкой.

Вызывается он через include "../file.php" в index.php.

Код:
function session_id_select() {
$login=$_SESSION['admin_user'];
$query_old = mysql_query("Select * from admin_users WHERE login='$login'");
if($query_old) {
$old=mysql_fetch_array ($query_old);
$time_old = $old['time_old']+1;
$time_new = date(U);
if ($time_new>=$time_old) {
session_destroy(); 
header("location:index.php"); 
exit();
} else {
echo "Все отлично!!!"; 
}; };
};
Если его не вызывать через include "../file.php", в самом index.php, то будет работать, но как сделать что бы работал так как есть, или другие варианты какие-нибудь, есть? подскажите пожалуйста.
 
L

lazutov

#2
1) Если что-то уже в браузер выводилось(ошибки например), то header() никакого эфекта не возимеет(он не может изменить отосланное)
2) что может выводится в браузер до окончания работы скрипта:
- ошибки php(варнинги всякие): в помощь http://ru2.php.net/manual/ru/function.error-reporting.php
- flush() - он для того и создан, чтобы выводить уже выданное интерпетатором php в браузер

в вашем случае - возможно несуществующий файл. Попробуйте прописать путь через $_SERVER['DOCUMENT_ROOT']
 
G

GOsha

#3
Предлагаю написать error_reporting(15) в начале скрипты. И вы увидите ошибку.
Если нет, тогда редирект можно сделать и JAVA и META - какой вам больше нравится. Без Хеадеров. Но то, что у вас начался вывод данных перед отправкой заголовка - это точно.