Главная страница
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.48 MB
Время: 0.023 c
3-1080981442
Алексей
2004-04-03 12:37
2004.05.02
Кодирование БД


3-1081412672
Ivan
2004-04-08 12:24
2004.05.02
Общий доступ к файлу


7-1078560595
DuhcmanSoft
2004-03-06 11:09
2004.05.02
Системный трей


4-1077893106
alxx
2004-02-27 17:45
2004.05.02
Создаю Static... Получаю иероглифы вместо кириллицы.


3-1081325950
Term
2004-04-07 12:19
2004.05.02
Трех звенные приожения, что я сделал не так.....???