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");
поэтому и ругаеться(скорее всего )
header() должен быть перед любым выводом в браузер. посмотри по коду.
у тебя вот второй хедер стоит после установки кодировки страницы
header("Content-Type: text/html; charset=utf-8");
поэтому и ругаеться(скорее всего )
Спустя 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();
он выводить "ааа" но при этом ругается вообще я уже грил это шаблон с урока это не я так расположил их.
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 написал(а):
ну так естественно надо echo убрать.
Гость_bulgakov
я думал, что больше кода нет и начал грешить на установку кодировки) ладно не буду оправдываться - туплю)
Гость_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-редирект(сейчас конечно скажут, что лучше так не делать)
какова суть работы скрипта?
я вот бывает пользуюсь редиректом 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[] = 'Напишите что-нибудь';
...
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, а потом так оп и
:)
все равно как-то нелепо чтоли выглядит - идет код на 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);
этот хедер обязателен?
просто из-за него у меня некоторое буквы виде закрашенных ромбиков
как убираю его всё норм
вот ещё вопрос
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
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
И при этом вся страница стираеться
действия которое вызывает 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);
<?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
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 в каком-нибудь текстовом редакторе просто пересохраните с этой кодировкой или же в том инструменте котором вы работаете.