[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: выдает ошибку
Начинающий

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


Почему выдает ошибку ?
Warning: Cannot modify header information - headers already sent by (output started at)



Спустя 1 минута, 46 секунд (6.10.2012 - 23:29) redreem написал(а):
либо до заголовка уже был вывод контента, либо файлы в кодировке utf-8 с BOM

Спустя 4 минуты, 45 секунд (6.10.2012 - 23:34) Начинающий написал(а):
Цитата (redreem @ 6.10.2012 - 23:29)
либо до заголовка уже был вывод контента, либо файлы в кодировке utf-8 с BOM

Да файл в кодировке utf-8 без BOM

Спустя 13 минут, 48 секунд (6.10.2012 - 23:48) Начинающий написал(а):
А какую кодировку надо ? smile.gif

Спустя 9 минут, 49 секунд (6.10.2012 - 23:58) redreem написал(а):
utf-8 без BOM. Если будет с BOM, то BOM-байты для php интерпретатора являются контентом для вывода и он их отдает браузеру до заголовка.

Спустя 10 минут (7.10.2012 - 00:08) Начинающий написал(а):
redreem вот что еще сейчас заметил


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


Тоже выдает ошибку , значит проблема в настройках php.ini ?

Спустя 9 минут, 54 секунды (7.10.2012 - 00:18) dron4ik написал(а):
какая ошибка?

Спустя 10 минут, 7 секунд (7.10.2012 - 00:28) Начинающий написал(а):
dron4ik Warning: Cannot modify header information - headers already sent by (output started at Z:\home\fd-games.loc\www\index.php:9) in Z:\home\fd-games.loc\www\index.php on line 51

Спустя 7 минут, 1 секунда (7.10.2012 - 00:35) rooor написал(а):
У тебя заголовки посылаются после вывода контента
Нужно сначала все заголовки послать, потом уже показывать содержание страницы

UPD:
Цитата
(output started at Z:\home\fd-games.loc\www\index.php:9) in Z:\home\fd-games.loc\www\index.php on line 51

вывод чего-то в 9 строке, а заголовок ты посылаешь в 51

Спустя 5 минут, 39 секунд (7.10.2012 - 00:40) Начинающий написал(а):
rooor Все я понял , спс smile.gif просто об этом рассказывается тут http://irbis-team.com/15/5/4 чет до меня и сразу не дошло unsure.gif

Спустя 3 минуты, 51 секунда (7.10.2012 - 00:44) Начинающий написал(а):

rooor хм... что то все равно тоже самое huh.gif

Спустя 3 минуты, 28 секунд (7.10.2012 - 00:48) Начинающий написал(а):

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Гостевая книга</title>
</
head>

<
body>

<?php
error_reporting(E_ALL);
$text1 = !empty($_POST['text1']) ? $_POST['text1'] : null;
$text2 = !empty($_POST['text2']) ? $_POST['text2'] : null;
if(isset($_POST['ok']))
{
if(!$text1)
echo 'Текстовое поле не заполнено.';
elseif(!$text2)
echo 'Текстовая область не заполнена.';
else
{

file_put_contents('text.txt', $text2, FILE_APPEND);
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
exit();
}
}

else
echo 'Напишите что-нибудь';
?>
<form action="?" method="POST">
Логин:<br />
<
input name="text1" type="text" value="<?php echo htmlspecialchars($text1) ?>"/><br />
Сообщение:<br />
<
textarea name="text2" cols="40" rows="10"><?php echo htmlspecialchars($text2);?></textarea><br />
<
input name="ok" type="submit" />
</
form>
<?php

if(file_exists('text.txt'))
echo nl2br(htmlspecialchars(file_get_contents('text.txt')));

?>
</body>
</
html>

Спустя 3 минуты, 18 секунд (7.10.2012 - 00:51) dron4ik написал(а):
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Гостевая книга</title>
</head>

<body>



это и есть вывод...

header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
должно быть до любого HTML или echo

Спустя 2 минуты, 48 секунд (7.10.2012 - 00:54) Начинающий написал(а):
dron4ik А почему тогда вот этот код тоже ошибку выдает ?



<?php


/**
* The guest book
* Гостевая книга
*
@author IT studio IRBIS-team
*
@copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/

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


?>
<form action="" method="post">
<
input name="text" type="text" /><br />
<
input name="ok" type="submit" />
</
form>
<?php

$text = !empty($_POST['text'])?$_POST['text']:null;

echo $text;


вот в этом месте

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

Спустя 2 минуты, 8 секунд (7.10.2012 - 00:56) dron4ik написал(а):
Цитата (Начинающий @ 6.10.2012 - 21:54)
dron4ik А почему тогда вот этот код тоже ошибку выдает ?


потому что header идет до любого html или операторов вывода!!!

Спустя 1 минута, 15 секунд (7.10.2012 - 00:57) dron4ik написал(а):
Понимаешь что значит ДО?

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

Спустя 31 секунда (7.10.2012 - 00:58) rooor написал(а):
Начинающий
потому что этот скрипт инклудится из другого?

Спустя 2 минуты, 49 секунд (7.10.2012 - 01:01) Начинающий написал(а):
rooor нет , нету не require, не include

Спустя 1 минута, 11 секунд (7.10.2012 - 01:02) Начинающий написал(а):
dron4ik нет я ток учусь smile.gif как написано на ирбисе так и делаю и вот ошибки , мне все таки кажется что в настройках что то unsure.gif

Спустя 1 минута, 33 секунды (7.10.2012 - 01:03) dron4ik написал(а):
Цитата (Начинающий @ 6.10.2012 - 22:02)
dron4ik нет я ток учусь smile.gif как написано на ирбисе так и делаю и вот ошибки , мне все таки кажется что в настройках что то unsure.gif

в настройках все ок... в тексте ошибки все написано... гугл подтвердит!!!

Спустя 3 минуты, 2 секунды (7.10.2012 - 01:06) Начинающий написал(а):
dron4ik вот посмотрите сюда http://irbis-team.com/15/5/2 Это урок по этой гостевой книге , сразу выдал ошибку на
 header("Content-Type: text/html; charset=utf-8"); 
Я решил обойти эту ситуацию и вставил шаблон html а теперь нужно перенапровление на эту же страницу и опять ошибка :(

Спустя 3 минуты, 22 секунды (7.10.2012 - 01:10) rooor написал(а):
Какая ошибка? Дословно

Спустя 2 минуты, 12 секунд (7.10.2012 - 01:12) dron4ik написал(а):
что-то не так сделал... не может там быть ошибки...

Спустя 39 секунд (7.10.2012 - 01:13) Начинающий написал(а):
rooor



<?php


/**
* The guest book
* Гостевая книга
*
@author IT studio IRBIS-team
*
@copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/

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


?>
<form action="" method="post">
<
input name="text" type="text" /><br />
<
input name="ok" type="submit" />
</
form>
<?php

$text = !empty($_POST['text'])?$_POST['text']:null;

echo $text;


Warning: Cannot modify header information - headers already sent by (output started at Z:\home\fd-games.loc\www\index.php:1) in Z:\home\fd-games.loc\www\index.php on line 15

Спустя 1 минута, 1 секунда (7.10.2012 - 01:14) Начинающий написал(а):

Начинающий Я тоже думал что опичатался или еще что то , потом тупо скопировал от туда и все равно ошибка

Спустя 46 секунд (7.10.2012 - 01:14) dron4ik написал(а):
этот файл инклюдится?

Спустя 48 секунд (7.10.2012 - 01:15) rooor написал(а):
у тебя до <?php стоит пробел или ещё что-то, поэтому и ошибка

Спустя 56 секунд (7.10.2012 - 01:16) dron4ik написал(а):
Цитата (rooor @ 6.10.2012 - 22:15)
у тебя до <?php стоит пробел или ещё что-то

точняк...... или перенос строки... в 1 строке трабла

Спустя 1 минута, 18 секунд (7.10.2012 - 01:17) Начинающий написал(а):
dron4ik нет у меня в папке www на сервере денвер , только один файл index.php

А вот этот скрипт работает нормально

<?php


/**
* The guest book
* Гостевая книга
*
@author IT studio IRBIS-team
*
@copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/

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

/////////////////////////////////////////////////////////////////
// VARIABLES
// ПЕРЕМЕННЫЕ

/////////////////////////////////////////////////////////////////

$text1 = !empty($_POST['text1']) ? $_POST['text1'] : null;
$text2 = !empty($_POST['text2']) ? $_POST['text2'] : null;
$info = array();

/////////////////////////////////////////////////////////////////
// SCRIPT
// СКРИПТ

/////////////////////////////////////////////////////////////////

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[] = 'Напишите что-нибудь';

/////////////////////////////////////////////////////////////////
// VIEW
// ОТОБРАЖЕНИЕ

/////////////////////////////////////////////////////////////////
?>
<form action="?" method="post">
Логин:<br />
<
input name="text1" type="text" value="<?php echo htmlspecialchars($text1) ?>"/><br />
Сообщение:<br />
<
textarea name="text2" cols="40" rows="10"><?php echo htmlspecialchars($text2);?></textarea><br />
<
input name="ok" type="submit" />
</
form>
<?php
// Выводим служебную информацию, "склеивая" элементы массива через разделитель <br/>
echo implode('<br>', $info) .'<br>';

if(file_exists('text.txt'))
echo nl2br(htmlspecialchars(file_get_contents('text.txt')));


А этот :

<?php


/**
* The guest book
* Гостевая книга
*
@author IT studio IRBIS-team
*
@copyright © 2009 IRBIS-team
*/
/////////////////////////////////////////////////////////
/**
* We establish the charset and level of errors
* Устанавливаем кодировку и уровень ошибок
*/

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


?>
<form action="" method="post">
<
input name="text" type="text" /><br />
<
input name="ok" type="submit" />
</
form>
<?php

$text = !empty($_POST['text'])?$_POST['text']:null;

echo $text;


выдает ошибку

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\fd-games.loc\www\index.php:1) in Z:\home\fd-games.loc\www\index.php on line 15

Спустя 1 минута, 23 секунды (7.10.2012 - 01:19) Начинающий написал(а):
dron4ik точно есть такое дело , пробел стоит убрал все заработало smile.gif Спасибо cool.gif

Спустя 7 часов, 10 минут, 20 секунд (7.10.2012 - 08:29) johniek_comp написал(а):
Начинающий
данная ошибка 100600 раз уже обсуждалась, нельзя было прогуглить? ясно же сказано, никакого вывода до отправки заголовков!

Спустя 5 часов, 5 минут (7.10.2012 - 13:34) Начинающий написал(а):
johniek_comp Если ты такой умный , то я недавно изучаю php , что то неустраивает закрой глаза и не смотри , для чего этот форум , чтоб ты мне говорил при каждой ошибке про гугл ?

Спустя 1 час, 2 минуты, 2 секунды (7.10.2012 - 14:36) inpost написал(а):
Начинающий
Ты разве не знал, что у любого форума есть УСТАВ? Правила, вот открываем правила и читаем: http://phpforum.ru/index.php?act=boardrules
Пункт: 2.3.b: прежде, чем задать вопрос, воспользуйтесь поиском - убедитесь, что подобный вопрос не обсуждался ранее.

Ты пробовал воспользоваться поиском по форуму? Или ты НАРУШАЕШЬ ПРАВИЛА?

Спустя 2 часа, 43 минуты, 48 секунд (7.10.2012 - 17:20) johniek_comp написал(а):
Начинающий
а ты не хочешь получать советов профессионала?
Быстрый ответ:

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