Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Warning: Cannot modify header information - headers already sent by
 
 автор: technic611   (22.02.2011 в 14:04)   письмо автору
 
 

header('Location:../templates/my_advert.php');


вот что пишет ((((

Warning: Cannot modify header information - headers already sent by (output started at Z:\denwer\www\denwer\my_functions.php:87)

  Ответить  
 
 автор: cheops   (22.02.2011 в 14:09)   письмо автору
 
   для: technic611   (22.02.2011 в 14:04)
 

Вы вызываете какую-то функцию отправки HTTP-заголовка (header(), setcookie(), session_start()), после того, как что-то выведено в окно браузера. Дело в том, что HTTP-заголовки и тело HTTP-документа отправляются отдельно, как только начинается отправка тела документа, считается, что все HTTP-заголовки уже отправлены.
Нужно либо так передалать код, чтобы заголовки отправлялись раньше любого вывода в окно браузера, либо включить буферизацию данных, чтобы пока обработка скрипта не завершиться, ничего браузеру не отправлялось - в этом случае интерпретатор сможет собрать все HTTP-заголовки и пустить их вперед тела HTTP-документа.

  Ответить  
 
 автор: technic611   (22.02.2011 в 14:32)   письмо автору
 
   для: cheops   (22.02.2011 в 14:09)
 

у меня сверху идет только подключение моих функций и там нет такого (header(), setcookie(), session_start())

<?
// Функция выборки шоссе из базы
function select_road () {

$pol mysql_query("SELECT * FROM road");
 
 
 echo 
"<select class=inp_text id=road name=road ><option value=''>Не выбрано</option>";
  while(
$poll mysql_fetch_array($pol))
{
echo
" <option value=".$poll['id_road'].">".$poll['name_road']."</option>";
}
 echo 
"<select>";

}

// Функция навигации 
function create_page_navigator($count_all_records$cur_page$num$url){ 
  
    
//сколько страниц всего можно сделать из этих записей (считаем что по $num записей на странице, можно изменить циферку) 
    
if(floor($count_all_records $num) == ($count_all_records $num)){ 
        
$cnt_all_pages=$count_all_records $num
    }else{ 
        
//если есть остаток от деления, то на одну страницу больше, там будет не десять, а оставшееся кол-во записей 
        
$cnt_all_pages=floor($count_all_records $num) + 1
    } 
    
//сколько всего интервалов есть у нас 
    
if(floor($cnt_all_pages $num) == ($cnt_all_pages $num)){ 
        
$all_intervals=$cnt_all_pages $num
    }else{ 
        
//если есть остаток от деления, то на один интервал больше 
        
$all_intervals=floor($cnt_all_pages $num) + 1
    } 

    
//теперь в зависимости на какой странице ($cur_page) сейчас пользователь, выводим текущий интервал ($cur_interval) 
    
if(floor($cur_page $num) == ($cur_page $num)){ 
        
$cur_interval=$cur_page $num
    }else{ 
        
$cur_interval=floor($cur_page $num) + 1
    } 

    
//выводим ссылки на предыдущий (следующий) интервалы и десять текущих страниц 
    
for($i=1$i<=$all_intervals$i++){ 
         
        if(
$i == ($cur_interval 1)){ 
            
//ссылка на предыдущий интервал     
            
print "<a href=\"$url. ($i $num) . "\"><< предыдущие $num страниц</a> &nbsp;&nbsp; "
        }elseif(
$i == $cur_interval){ 
            
//ссылки текущего интервала 
            
for($j=(($i-1) * $num 1); $j<=($i $num) && $j<=$cnt_all_pages$j++){ 
                if(
$j == $cur_page){ 
                    
//если эта та страница на которой сейчас юзер, можно  ее подсветить как нить 
                    
print "<a style=\"color:red\" href=\"$url$j "\">" $j "</a> &nbsp;&nbsp; "
                }else{ 
                    print 
"<a href=\"$url$j "\">" $j "</a> &nbsp;&nbsp; "
                } 
            } 
        }elseif(
$i == ($cur_interval 1)){ 
            
//ссылка на следующий интервал     
            
print "<a href=\"$url. ($i $num) . "\">следующие $num страниц >></a>"
            break; 
        }elseif(
$i > ($cur_interval 1)){ 
            break; 
        } 
    } 


// Функция конвертирования  
function convert($from$to$var)
{
    if (
is_array($var))
    {
        
$new = array();
        foreach (
$var as $key => $val)
        {
            
$new[convert($from$to$key)] = convert($from$to$val);
        }
        
$var $new;
    }
    else if (
is_string($var))
    {
        
$var iconv($from$to$var);
    }

    return 
$var;
}
 
?> 

  Ответить  
 
 автор: cheops   (22.02.2011 в 14:41)   письмо автору
 
   для: technic611   (22.02.2011 в 14:32)
 

Что находится на 87 строчке файла my_functions.php ?

  Ответить  
 
 автор: Trianon   (22.02.2011 в 14:42)   письмо автору
 
   для: cheops   (22.02.2011 в 14:41)
 

очевидно, это последняя строка приведенного текста.
В поток уходят CR и LF в её хвосте.

Нужно просто удалить эту последнюю строку ?>

  Ответить  
 
 автор: technic611   (22.02.2011 в 15:05)   письмо автору
 
   для: Trianon   (22.02.2011 в 14:42)
 

удалить ?> ???????

  Ответить  
 
 автор: Trianon   (22.02.2011 в 15:09)   письмо автору
 
   для: technic611   (22.02.2011 в 15:05)
 

Страшно, да?
:))

  Ответить  
 
 автор: cheops   (22.02.2011 в 15:19)   письмо автору
 
   для: technic611   (22.02.2011 в 15:05)
 

Да нет, посмотрите, нет ли за ?> пробелов, переводов строк и других невидимых символов, если есть - удалите, скорее всего проблема после этого исчерпается.

  Ответить  
 
 автор: technic611   (22.02.2011 в 15:27)   письмо автору
 
   для: cheops   (22.02.2011 в 15:19)
 

был пробел, убрал, объясниет пожалуйстав чем прикол, выводился в броузер пробел?

  Ответить  
 
 автор: cheops   (22.02.2011 в 15:50)   письмо автору
 
   для: technic611   (22.02.2011 в 15:27)
 

Да, так как вы можете за пределами тэгов <?php и ?> выводить HTML-код, интерпретатор не имеет право ничего от туда убирать, поэтому пробел остается как есть и рассматривается как начало HTTP-документа. Как только HTTP-документ начал отправляться браузеру, HTTP-заголовки отправлять нельзя (если отключена буферизация, а она по умолчанию отключена).

  Ответить  
 
 автор: technic611   (22.02.2011 в 15:28)   письмо автору
 
   для: technic611   (22.02.2011 в 15:05)
 

для: Trianon

ну я лузер, ну не до такой же степени )))

  Ответить  
 
 автор: neadekvat   (22.02.2011 в 15:36)   письмо автору
 
   для: technic611   (22.02.2011 в 15:28)
 

То есть вы считаете, что удалять ?> нельзя?
У меня все подключаемые файлы без этой фигнюшечки.

  Ответить  
 
 автор: elenaki   (12.11.2015 в 11:16)   письмо автору
 
   для: neadekvat   (22.02.2011 в 15:36)
 

а вот это бесит. редактор показывает красным незакрытую скобку <?

  Ответить  
 
 автор: Trianon   (14.11.2015 в 10:30)   письмо автору
 
   для: elenaki   (12.11.2015 в 11:16)
 

Это какой-то ... день сурка?

  Ответить  
 
 автор: Trianon   (22.02.2011 в 15:41)   письмо автору
 
   для: technic611   (22.02.2011 в 15:28)
 

удалите и проверьте.
Не корову же проигрываете?

  Ответить  
 
 автор: Гена   (12.11.2015 в 10:46)
 
   для: Trianon   (22.02.2011 в 15:41)
 

Спасибо, все перерыл, только это и помогло

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования