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

Форум PHP

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

 

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

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

тема: Warning: Cannot modify header information - headers already sent by
 
 автор: Shokan   (04.06.2007 в 11:37)   письмо автору
 
 

В локальном хостинге все работает нормально. Закинул в сервер хостинговой компаний приложения выводит ошибку.
Warning: Cannot modify header information - headers already sent by (output started at /home/shalmk/public_html/bolshoi/rus/news/config.php:45) in /home/shalmk/public_html/bolshoi/rus/news/admin/delnews.php on line 29
В чем дело?
Может надо чтото прописать в .htaccess файле? можете растолковать об этой ошибке?

   
 
 автор: newman2   (04.06.2007 в 11:41)   письмо автору
 
   для: Shokan   (04.06.2007 в 11:37)
 

А пример скрипта можно посмотреть? В 29 строке возможна ошибка

   
 
 автор: Shokan   (04.06.2007 в 11:54)   письмо автору
 
   для: newman2   (04.06.2007 в 11:41)
 

Проблема однозначно в header
Этод движок я взял на этом сайте(БЛОК НОВОСТЕЙ).
под 29 строку поподает if(mysql_query($query)) header("Location: index.php?page=".$_GET['page']);

  Error_Reporting(E_ALL & ~E_NOTICE); 

  // Устанавливаем соединение с базой данных
  require_once("../config.php");

  // Проверяем параметр id_news, предотвращая SQL-инъекцию
  if(!preg_match("|^[\d]+$|",$_GET['id_news'])) puterror("Ошибка при обращении к блоку новостей");

  // Если новостная позиция имела изображение - удаляем его
  $query = "SELECT * FROM news 
            WHERE id_news=".$_GET['id_news'];
  $new = mysql_query($query);
  if(!$new) puterror("Ошибка запроса к таблице новостей...");
  if(mysql_num_rows($new) > 0)
  {
    $row = mysql_fetch_array($new);
    if(is_file("../".$row['url_pict'])) @unlink("../".$row['url_pict']);
  }
  // Формируем и выполянем SQL-запрос на удаление записи в таблице news  
  $query = "DELETE FROM news WHERE id_news=".$_GET['id_news'];
  if(mysql_query($query)) header("Location: index.php?page=".$_GET['page']);
  else puterror("Ошибка при обращении к блоку новостей");

   
 
 автор: Trianon   (04.06.2007 в 12:06)   письмо автору
 
   для: Shokan   (04.06.2007 в 11:54)
 

проблема у Вас однозначно на 45 строке файла config.php - именно там начинается преждевременный вывод в браузер, которого для обеспечения корректной работы скрипта перед вызовом header быть не должно в принципе.

   
 
 автор: Shokan   (04.06.2007 в 12:20)   письмо автору
 
   для: Trianon   (04.06.2007 в 12:06)
 

там нету вывода в браузер 45 строка файла config.php поподает на самый конец, то есть


>

самое интересное, скрип выполняет свою функцию, то есть новость удаляется. :-)

   
 
 автор: Trianon   (05.06.2007 в 01:29)   письмо автору
 
   для: Shokan   (04.06.2007 в 12:20)
 

Это всего лишь значит, что после > стоит символ конца строки. Он и порождает вывод.
Символ > должен быть последним в файле.

   
 
 автор: Trianon   (04.06.2007 в 11:52)   письмо автору
 
   для: Shokan   (04.06.2007 в 11:37)
 

почти наверняка, это не первая ошибка при выполнении скрипта. Устраните все предыдущие.

   
 
 автор: P@Sol   (04.06.2007 в 11:58)   письмо автору
 
   для: Shokan   (04.06.2007 в 11:37)
 

.

   
 
 автор: mihdan   (04.06.2007 в 12:07)   письмо автору
 
   для: Shokan   (04.06.2007 в 11:37)
 

ob_start() в начале скрипта тебе поможет

   
 
 автор: cheops   (05.06.2007 в 00:42)   письмо автору
 
   для: Shokan   (04.06.2007 в 11:37)
 

Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.

http://www.softtime.ru/group/id_group=12

   
Rambler's Top100
вверх

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