Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Помогите с PHP.... header();   Найти похожие ветки 

 
SergP ©   (2004-04-08 11:39) [0]

Пытаюсь сделать так чтобы при закачке был сразу известен размер передаваемых данных (т.е. чтобы в заголовке ответа http -сервера была строка Content-Length:...)

Делаю так:
Все что подлежит выводу добавляю к переменной $buffer, а затем:

...
header("Content-Length: ".strlen($buffer));
echo $buffer;
?>

Но несмотря на то что больше в скрипте нет нигде вывода, я часто получаю сообщение:

Warning: Cannot modify header information - headers already sent by (output started at ....

Что мне можно сделать чтобы заголовок не "уходил" так рано.
Или как по другому можно решить мою проблему?


 
Undert ©   (2004-04-08 12:41) [1]

Фак, у тя Echo до Header происходит на строке output started at ....


 
SergP ©   (2004-04-08 12:50) [2]

Ошибка выдается (output started at ) в 11.php в строке 26
Вот куски скриптов:
Основной скрипт:
------------------------------------------------------
...
$buffer="";
if ($userid<>0)
{
 if ($type=="10") {include("10.php");}  // тестовый
 if ($type=="11") {include("11.php");}  // юзеры
 if ($type=="12") {include("12.php");}  // категории
 if ($type=="13") {include("13.php");}  // форумы-тест
 if ($type=="14") {include("14.php");}  // топики
 if ($type=="15") {include("15.php");}  // посты
 if ($type=="20") {include("20.php");}  //
 if ($type=="21") {include("21.php");}  // юзеры-тестовый
 if ($type=="22") {include("22.php");}  //
 if ($type=="23") {include("23.php");}  //
 if ($type=="31") {include("31.php");}  // юзеры-аватары
}
else
{
$buffer="##NA";
}
header("Content-Length: ".strlen($buffer));
echo $buffer;
?>
------------------------------------------------------

А вот 11.php:

------------------------------------------------------
<?
//=============Выборка информации о юзерах=====11.php============

$users_data_query = "select userid,posts,lastvisit,username as us1,username as us2,showemail,email
                    from $t_users
                    where lastvisit>=$ltime and lastvisit<=$rtime
                    order by lastvisit";

$result_users=mysql(DBName,$users_data_query);

for ($j=0; $j<mysql_numrows($result_users); $j++)
{
 $curent_user=mysql_fetch_array($result_users);
 // Показывать емейл будем только если это разрешено владельцем
 $cusermail="";
 if ($curent_user[5]=1) $cusermail=$curent_user[6];
 $user_login_length=strlen($curent_user[3]);
 $user_name_length=strlen($curent_user[4]);
 $user_mail_length=strlen($curent_user[6]);
$buffer="$buffer$curent_user[0]/$curent_user[1]/$curent_user[2]/$user_login_length/";
$buffer="$buffer$user_name_length/$user_mail_length/";
$buffer="$buffer$curent_user[3]/$curent_user[4]/$curent_user[6]";
}
?>

------------------------------------------------------

Проблема в том что строка 26 в 11.php - это последняя строка и она находится после ?>
т.е. там скорее всего стоит #13#10
Это что? Считается выводом?


 
SergP ©   (2004-04-08 14:22) [3]

Все. Удалил эти пустые строчки и стало нормально работать..

>Undert ©   (08.04.04 12:41)
>Фак, у тя Echo до Header происходит на строке output started at ....

Спасибо что обратил мое внимание на эту цифру, а то я как-то и не замечал ее... :-)))



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
14-1081622468
Brahman
2004-04-10 22:41
2004.05.02
В это вечер..


14-1081339441
sHinE
2004-04-07 16:04
2004.05.02
C какими БД работает дельфи?


1-1082099277
ghg
2004-04-16 11:07
2004.05.02
динамические массивы из Delphi в фортрановскую dll


3-1081333615
Kein
2004-04-07 14:26
2004.05.02
разрушение структуры таблицы


11-1065608167
Stargazer
2003-10-08 14:16
2004.05.02
JpegObj &amp; FPC