Форум: "Потрепаться";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизПомогите с 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.031 c