[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: header
Dazl
люди прописываю это в начале

header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);

и это в после отправки

header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
exit();

получается ошибка

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test1.ru\www\index.php:4) in Z:\home\test1.ru\www\index.php on line 6

Предупреждение : Не могу изменить информацию заголовка - заголовки уже прислал (выход начался в Z: \ главная \ test1.ru \ WWW \ index.php: 4) в Z: \ главная \ test1.ru \ WWW \ index.php на линии 6

в общем 6-я линия это exit();

по идеи он должен забрасывать POST параметры чтоб при обновлении было пусто.
что у меня не так? вроде скопировал шаблон из урока, не сам писал



Спустя 10 минут, 21 секунда (4.07.2011 - 09:16) quickxyan написал(а):
Dazl
header() должен быть перед любым выводом в браузер. посмотри по коду.
у тебя вот второй хедер стоит после установки кодировки страницы
header("Content-Type: text/html; charset=utf-8");
поэтому и ругаеться(скорее всего smile.gif )

Спустя 3 минуты, 55 секунд (4.07.2011 - 09:20) Гость_bulgakov написал(а):
Цитата
у тебя вот второй хедер стоит после установки кодировки страницы
header("Content-Type: text/html; charset=utf-8");

Это не при чем их хоть десяток может друг за другом идти, тут или действительно у вас какой то echo идет до хедера или же перед открывающим дескриптором <?php стоит какой то пробельный знак или элементы html разметки

Спустя 4 минуты, 12 секунд (4.07.2011 - 09:24) Dazl написал(а):
<?php
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);

echo "ааа";

header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
exit();

он выводить "ааа" но при этом ругается вообще я уже грил это шаблон с урока это не я так расположил их.

Спустя 6 минут, 19 секунд (4.07.2011 - 09:31) bulgakov написал(а):
Вот из-за этого 'ааа' у вас не будет работать второй хедер уберите вывод echo

Спустя (4.07.2011 - 09:31) quickxyan написал(а):
ну так естественно smile.gif надо echo убрать.

Гость_bulgakov
я думал, что больше кода нет и начал грешить на установку кодировки) ладно не буду оправдываться - туплю)

Спустя 1 минута, 42 секунды (4.07.2011 - 09:32) Dazl написал(а):
Так значит сам код надо внедрять после 2-го хедера?

Спустя 4 минуты, 26 секунд (4.07.2011 - 09:37) Guest написал(а):
Нет. после второго хедера происходит перезагрузка страницы и ваш код скорее не выолнится и еще хедер перезагрузки страницы надо делать по какому то условию иначе получится что он постоянно будет выполнять обновление страницы что приведет к ошибке браузера. приведите весь код.

Спустя 3 минуты, 9 секунд (4.07.2011 - 09:40) quickxyan написал(а):
Dazl
какова суть работы скрипта?

я вот бывает пользуюсь редиректом js, так как никак не могу втулить php-редирект(сейчас конечно скажут, что лучше так не делать)

Спустя 3 минуты, 6 секунд (4.07.2011 - 09:43) bulgakov написал(а):
Цитата
я вот бывает пользуюсь редиректом js, так как никак не могу втулить php-редирект(сейчас конечно скажут, что лучше так не делать)

Ну почему все зависит от ситуации если вам так удобнее и сделано правильно и обеспечивает нужный результат то можно и js

Спустя 3 минуты, 25 секунд (4.07.2011 - 09:47) Dazl написал(а):
...
if(isset($_POST['ok']))
{
// Собираем ошибки в массив (если они есть)
if(!$text1)
$info[] = 'Текстовое поле не заполнено.';

if(!$text2)
$info[] = 'Текстовая область не заполнена.';
// Если массив ошибок пуст,
if(count($info) == 0)
{
// пишем файл
file_put_contents('text.txt', $text2, FILE_APPEND);
// и перенаправляем браузер на новую страницу
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
// Останавливаем скрипт (все равно браузер уже ушел)
exit();
}
}
else
$info[] = 'Напишите что-нибудь';
...


Спустя 13 секунд (4.07.2011 - 09:47) quickxyan написал(а):
bulgakov
все равно как-то нелепо чтоли выглядит - идет код на php, а потом так оп и

echo '<script>location.href="index.php"</script>';


:)

Спустя 1 минута, 45 секунд (4.07.2011 - 09:49) quickxyan написал(а):
Dazl
ну вроде в этом скрипте нет никакого вывода в браузером перед хедером!

Спустя 1 минута, 14 секунд (4.07.2011 - 09:50) bulgakov написал(а):
Цитата
все равно как-то нелепо чтоли выглядит - идет код на php, а потом так оп и

Ну тогда вот вам перенаправление в хедере:

header("Location: filename"); // filename имя файла или путь до него


Спустя 1 минута, 19 секунд (4.07.2011 - 09:51) bulgakov написал(а):
Dazl
Уберите хедер перенаправления и попробуйте запустить без него, возможно скрипт выдаст вам ошибку в работе.

Спустя 4 минуты, 49 секунд (4.07.2011 - 09:56) Dazl написал(а):
Мм.. вроде заработало! спасибо.

вот ещё вопрос

header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);

этот хедер обязателен?
просто из-за него у меня некоторое буквы виде закрашенных ромбиков

как убираю его всё норм

Спустя 3 минуты, 27 секунд (4.07.2011 - 09:59) nugle написал(а):
Этот хедер указывает кодировку и тип документа, значит у тебя в мета тегах не указано тоже самое либо указано другое

Спустя 7 минут, 17 секунд (4.07.2011 - 10:07) bulgakov написал(а):
Этот хедер указывает кодировку документа если сам скрипт в отличной от той кодировки которая в хедере то символы будут неправильно отображаться проверь сам файл скрипта у тебя в какой кодировк и если в отличной от utf-8 сохрани его в utf-8

Спустя 25 минут, 16 секунд (4.07.2011 - 10:32) Dazl написал(а):
у меня не было тега мета, но ща я добавил и поменял кодировку как вы и сказали и вот те ещё ошибка

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test1.ru\www\index.php:2) in Z:\home\test1.ru\www\index.php on line 17

Предупреждение : Не могу изменить информацию заголовка - заголовки уже прислал (выход начался в Z: \ главная \ test1.ru \ WWW \ index.php: 2) в Z: \ главная \ test1.ru \ WWW \ index.php на линии 17

Спустя 1 минута, 51 секунда (4.07.2011 - 10:34) bulgakov написал(а):
Опять же до хедера что-то отправляется или же ошибка в скрипте уберите этот хедер и посмотрите что выводит скрипт без него

Спустя 33 минуты, 39 секунд (4.07.2011 - 11:07) Dazl написал(а):
Без хедера (1-го) с мето-тегом сайт загружаеться НО при нажатии
действия которое вызывает 2-й хедер ошибка

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test1.ru\www\index.php:2) in Z:\home\test1.ru\www\index.php on line 151

Предупреждение : Не могу изменить информацию заголовка - заголовки уже прислал (выход начался в Z: \ главная \ test1.ru \ WWW \ index.php: 2) в Z: \ главная \ test1.ru \ WWW \ index.php в строке 151

И при этом вся страница стираеться

Спустя 7 минут, 31 секунда (4.07.2011 - 11:15) nugle написал(а):
выложи начало кода

Спустя 14 минут, 55 секунд (4.07.2011 - 11:30) Dazl написал(а):
<META HTTP – EQUIV="Content – Type" content="text/html" charset="utf-8">
<?php
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);

Спустя 8 минут (4.07.2011 - 11:38) bulgakov написал(а):
Еще раз говорю попоробуй запустить код без последнего хедера который: header('Location: namefile'); а первый хедер пусть остается

Спустя 1 минута, 54 секунды (4.07.2011 - 11:40) bulgakov написал(а):
Просто я думаю что у тебя в коде скрипта какая то ошибка она начинает выводится и это мешает второму хедеро релоадить страницу что вызывает ошибку изменения заголовков, то есть у тебя происходит вывод ошибки до хедера, убери последний хедер и посмотри что за ошибку выдаст в коде.

Спустя 58 секунд (4.07.2011 - 11:41) Dazl написал(а):
с 1-м хедером и с метой и без 2-го хедера работает тока сверху весит ошибка

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test1.ru\www\index.php:2) in Z:\home\test1.ru\www\index.php on line 3

Предупреждение : Не могу изменить информацию заголовка - заголовки уже прислал (выход начался в Z: \ главная \ test1.ru \ WWW \ index.php: 2) в Z: \ главная \ test1.ru \ WWW \ index.php на линии 3

Спустя 4 минуты, 27 секунд (4.07.2011 - 11:45) bulgakov написал(а):
Цитата
<META HTTP – EQUIV="Content – Type" content="text/html" charset="utf-8">
<?php
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);

Ну вот о чем я говорил у вас до хедера идет html код -

<META HTTP – EQUIV="Content – Type" content="text/html" charset="utf-8">

Уберите его он тут лишний оставьте только хидер и до открывающего регистра <?php не должно быть никаких знаков


<?php // Это должна быть самая первая строчка файла до <?php не должно быть никаких знаков
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ALL);

Спустя 1 минута, 27 секунд (4.07.2011 - 11:47) Dazl написал(а):
а мету куда и нужна ли она воще?

Спустя 1 минута, 53 секунды (4.07.2011 - 11:48) bulgakov написал(а):
Мета нужна если только чистый html файл с расширением html, а в файлах *.php лучше делать через header("Content-Type: text/html; charset=utf-8"); В вашем случае мета абсолютно не нужна

Спустя 1 минута, 58 секунд (4.07.2011 - 11:50) Dazl написал(а):
А с закрашенными ромбиками что делать?

Спустя 7 минут, 2 секунды (4.07.2011 - 11:57) bulgakov написал(а):
Это значит что кодировка указанная в header("Content-Type: text/html; charset=utf-8"); в данном случае utf-8 не совпадает с кодировкой файла скрипта, смените кодировку файла скрипта на utf-8 в каком-нибудь текстовом редакторе просто пересохраните с этой кодировкой или же в том инструменте котором вы работаете.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.