Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: header('); ошибка Cannot modify header information
 
 автор: kvins   (26.02.2011 в 12:56)   письмо автору
 
 

знаю что ошибка ,типо из за пробелов , но открывал и в notepad и в dreamwiwer нету никаких отступов

Если вытаскиваю на начало страницы ,то все нормально перенаправляет , вставляю после проверки совпадения пароля то выдает эту ошибку.. Для примера делал так

if ($myrow10['pass'] == $pass && $myrow10['login'] == $login)
{header('Location: http://www.example.com/');
}

мб я чета не правильно делаю???

  Ответить  
 
 автор: Trianon   (26.02.2011 в 13:20)   письмо автору
 
   для: kvins   (26.02.2011 в 12:56)
 

нужно полностью читать текст сообщения.
Оно достаточно многое сообщает.

PS. такой символ как BOM (присутствуюя в файле) вообще не показывается notepad'ом, но это не значит что его нет.

  Ответить  
 
 автор: kvins   (26.02.2011 в 13:22)   письмо автору
 
   для: Trianon   (26.02.2011 в 13:20)
 

: Cannot modify header information - headers already sent by (output started at w:\home\localhost\www\new\index.php:6) in w:\home\localhost\www\new\index.php on line 153



эта ошибка уже как то была на этом форуме тока с session start .

вообще можно отсылать на другую страницу после проверки ??

а как его найти и выключить??
и почему если я его выставляю в начало страницы ,то все нормально
мб он ставит BOM именно в проверке?

  Ответить  
 
 автор: Trianon   (26.02.2011 в 13:26)   письмо автору
 
   для: kvins   (26.02.2011 в 13:22)
 

как видите, тут достаточно много написано.
в частности, что проблема была обнаружена на строке 153.
А причиной проблемы является вывод, который начался на 6-й строке скрипта.
Ну или где-то с 1-й по 6-ю.

  Ответить  
 
 автор: kvins   (26.02.2011 в 13:27)   письмо автору
 
   для: Trianon   (26.02.2011 в 13:26)
 

на 6 строке <? include ("blocks/bd.php");

на первой <?php session_start();?>

по середине доктайп

и что ему тут мешает??

  Ответить  
 
 автор: Trianon   (26.02.2011 в 13:31)   письмо автору
 
   для: kvins   (26.02.2011 в 13:27)
 

я не знаю, что Вы имеете в виду под доктайп.
показали бы все 6 строк.

Возможно также, что пустые символы в файле bd.php

  Ответить  
 
 автор: kvins   (26.02.2011 в 13:34)   письмо автору
 
   для: Trianon   (26.02.2011 в 13:31)
 

<?php session_start();?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<? include ("blocks/bd.php");?>

  Ответить  
 
 автор: kvins   (26.02.2011 в 13:55)   письмо автору
 
   для: Trianon   (26.02.2011 в 13:31)
 

Возможно также, что пустые символы в файле bd.php ё

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


ps блин поставил выборку из php рядом с session , а
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

поставил ниже и ето решило проблему ту а теперь ему мешают теги script

вот как сейчас скрипт выглядит

<?php session_start();?>
<? include("blocks/bd.php");?>
<script type = "text/javascript" src = "js/jquery.js"></script>
<script type="text/javascript" src="js/myscript.js"></script>

Warning: Cannot modify header information - headers already sent by (output started at w:\home\localhost\www\new\index.php:3) in w:\home\localhost\www\new\index.php on line 144

и так везде куда бы я не поставил ети теги хоть в теги хоть в head

удалил их на время так ему не понравилась ета строчка <label>Логин<br>
ну ето уже бред , я уже нечего не понимаю

  Ответить  
 
 автор: Trianon   (26.02.2011 в 14:29)   письмо автору
 
   для: kvins   (26.02.2011 в 13:55)
 

и доктайп и теги <script > (на самом деле - любые теги) - это такая же часть тела http-отклика, как и обычный текст. сервер http вообще не делает меж ними различий.

А заголовок http-отклика должен идти перед телом, а не посредине.

  Ответить  
 
 автор: kvins   (26.02.2011 в 14:37)   письмо автору
 
   для: Trianon   (26.02.2011 в 14:29)
 

хочу уточнить , надо всю выборку сделать до того как пойдет html код ?

  Ответить  
 
 автор: Trianon   (26.02.2011 в 14:42)   письмо автору
 
   для: kvins   (26.02.2011 в 14:37)
 

такого жесткого правила нет.

просто поля заголовка (а это в основном вызовы функций session_start(), setcookie(), header() ) должны отправляться не позднее, чем самый первый байт тела отклика выползет от сервера к браузеру.


Иногда обсуждаемая ошибка оказывается наведенной.
При корректном выполнении код (стоящий перед перечисленными функциями) делает что ему надо молча.
А если программист где-то что-то не учел, и неправильное выполнение кода привело к тому, что php выдал диагностическое сообщение, то это сообщение уйдет браузеру как обычный html-текст. Естественно, перед ней уйдет и загоовок - к тому времени сформировавшийся. И уйдет раньше попытки отправить поле заголовка из скрипта. И тогда эта попытка отправки поля вызовет вторую диагностику headers already sent, которой бы не было, не будь первой ошибки.

  Ответить  
 
 автор: bab-nike   (26.02.2011 в 19:44)   письмо автору
 
   для: kvins   (26.02.2011 в 13:55)
 

может ваш сервер вот это <? КОД ?> принимает как asp?! исправьте на <?php КОД ?>, а вообе просто отредактируйте в php.ini эту строку
output_buffering = on

и сколько бы я не столкнулся с header(), при output_buffering = on можно вызвать header() хоть где угодно, лишь бы с перва session_start() запустить.

  Ответить  
 
 автор: Tonik992   (26.02.2011 в 20:00)   письмо автору
 
   для: bab-nike   (26.02.2011 в 19:44)
 

это немыслемо вызывать header везде 0_0

  Ответить  
 
 автор: bab-nike   (26.02.2011 в 20:25)   письмо автору
 
   для: Tonik992   (26.02.2011 в 20:00)
 

не поймите дословно, есть некие грани, в данном -выше приведенном примере по крайне мере будет работать,

  Ответить  
 
 автор: kvins   (26.02.2011 в 21:42)   письмо автору
 
   для: bab-nike   (26.02.2011 в 20:25)
 

это немыслемо вызывать header везде 0_0 ахахах ты его шокировал

спс за совет, кстати хотел спросить а сама кнопка submit ее можно проверять на то нажата она или нет ??

  Ответить  
 
 автор: bab-nike   (27.02.2011 в 00:02)   письмо автору
 
   для: kvins   (26.02.2011 в 21:42)
 

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

  Ответить  
 
 автор: kvins   (27.02.2011 в 01:23)   письмо автору
 
   для: bab-nike   (27.02.2011 в 00:02)
 

все спс все помогло

  Ответить  
 
 автор: Trianon   (26.02.2011 в 13:28)   письмо автору
 
   для: kvins   (26.02.2011 в 13:22)
 

>и почему если я его выставляю в начало страницы ,

не понял.

> ,то все нормально

и это не понял.

  Ответить  
 
 автор: kvins   (26.02.2011 в 13:30)   письмо автору
 
   для: Trianon   (26.02.2011 в 13:28)
 

я вот как раз когда всталял сразу после session start чтоб проверить мб я скрипт криво написал ,то он у меня переводил на другую страницу ,на которую мне надо

выше я написал что в тех строчках с 1 по 6

  Ответить  
 
 автор: Trianon   (26.02.2011 в 13:34)   письмо автору
 
   для: kvins   (26.02.2011 в 13:30)
 

>я вот как раз когда всталял сразу после session start чтоб проверить мб я скрипт криво написал ,то он

хорошо.

>выше я написал что в тех строчках с 1 по 6

хорошо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования