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

Форум PHP

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

 

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

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

тема: удаление в Liteforum
 
 автор: kak   (09.04.2008 в 14:45)   письмо автору
 
 

Подскажите пожалуйста, почему удаление тем не срабатывает, выдает ошибку:



Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\for\dmn\system_liteforum\del.php:7) in Z:\home\localhost\www\for\dmn\utils\security_mod.php on line 9

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\for\dmn\system_liteforum\del.php:7) in Z:\home\localhost\www\for\dmn\utils\security_mod.php on line 10




<?php
  
////////////////////////////////////////////////////////////
  // 2006-2008 (C) IT-студия SoftTime (http://www.softtime.ru)
  ////////////////////////////////////////////////////////////
  // Выставляем уровень обработки ошибок 
  // (http://www.softtime.ru/info/articlephp.php?id_article=23)
  
error_reporting(E_ALL & ~E_NOTICE); 

  
// Устанавливаем соединение с базой данных
  
require_once("config.php");
  
// Подключаем SoftTime FrameWork
  
require_once("../../config/class.config.dmn.php");
  
// Подключаем блок авторизации
  
require_once("../utils/security_mod.php");

  try
  {
    
$query "SELECT * FROM $tbl_themes 
              WHERE `time` < NOW() - INTERVAL 1 YEAR"
;
    
$thm mysql_query($query);
    if(!
$thm)
    {
      throw new 
ExceptionMySQL(mysql_error(), 
                               
$query,
                              
"Ошибка при удалении сообщений форума");
    }
    
$arr = array();
    if(
mysql_num_rows($thm))
    {
      while(
$them mysql_fetch_array($thm))
      {
        
$arr[] = $them['id_theme'];
      }
    }

    
// Запрашиваем все сообщения, для удаления вложений
    
$query "SELECT * FROM $tbl_posts
              WHERE id_theme IN ("
.implode(","$arr).")";
    
$pst mysql_query($query);
    if(!
$pst)
    {
      throw new 
ExceptionMySQL(mysql_error(), 
                               
$query,
                              
"Ошибка извлечения сообщений");
    }
    if(
mysql_num_rows($pst))
    {
      while(
$posts mysql_fetch_array($pst))
      {
        
// Удаляем прикрпелённые файлы
        
@unlink("../../forum/".$posts['putfile']);
      }
    }
    
// Удаляем сообщения
    
$query "DELETE FROM $tbl_posts
              WHERE id_theme IN ("
.implode(","$arr).")";
    if(!
mysql_query($query))
    {
      throw new 
ExceptionMySQL(mysql_error(), 
                               
$query,
                              
"Ошибка удаления сообщений");
    }
    
// Удаляем сообщения
    
$query "DELETE FROM $tbl_themes
              WHERE id_theme IN ("
.implode(","$arr).")";
    if(!
mysql_query($query))
    {
      throw new 
ExceptionMySQL(mysql_error(), 
                               
$query,
                              
"Ошибка удаления темы");
    }
  }
  catch(
ExceptionObject $exc
  {
    require(
"../utils/exception_object.php"); 
  }
  catch(
ExceptionMySQL $exc)
  {
    require(
"../utils/exception_mysql.php"); 
  }
  catch(
ExceptionMember $exc)
  {
    require(
"../utils/exception_member.php"); 
  }
?> 

   
 
 автор: mihdan   (09.04.2008 в 15:54)   письмо автору
 
   для: kak   (09.04.2008 в 14:45)
 

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

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

   
 
 автор: kak   (09.04.2008 в 17:17)   письмо автору
 
   для: mihdan   (09.04.2008 в 15:54)
 

Нельзя ли попроще?

Я так и не понял, что нужно сделать : )

   
 
 автор: vitali   (09.04.2008 в 18:05)   письмо автору
 
   для: kak   (09.04.2008 в 17:17)
 

> Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\for\dmn\system_liteforum\del.php:7) in Z:\home\localhost\www\for\dmn\utils\security_mod.php on line 9 ......

А Вы точно уверены, что в каталоге dmn\system_liteforum\ есть скрипт del.php? Если честно, то я не нашел такого в выложеном архиве. Есть athdel.php, lnkdel.php, и т.д.
Возможно поэтому HEADER() из dmn\utils\security_mod.php и не может Вам выдать "HTTP/1.0 401 Unauthorized", т.к интерпретатор уже в браузер ругнулся что нет оного скрипта.

   
 
 автор: kak   (09.04.2008 в 20:14)   письмо автору
 
   для: vitali   (09.04.2008 в 18:05)
 

>> А Вы точно уверены, что в каталоге dmn\system_liteforum\ есть скрипт del.php? Если честно, то я не нашел такого

Правильно его там нет.
Я его туды сам положил. Игорь Вячеславович подсказал.
Все, вроде работало, потом что-то глючить стало.
Самое интересное я разными браузерами пробовал, эффект не у всех одинаковый.
В опере получилось однажды потом и в опере такую ошибку стало выдавать.
Вот еще, не пойму по моему с выкл. Java Script тоже скрипт не работает.

Пока не "пашет"...

   
 
 автор: cheops   (10.04.2008 в 12:15)   письмо автору
 
   для: kak   (09.04.2008 в 14:45)
 

7 строка чему соответствует в файле del.php?

   
 
 автор: kak   (10.04.2008 в 15:21)   письмо автору
 
   для: cheops   (10.04.2008 в 12:15)
 

Ой, в 7 строке </head>

Чет я по ходу крутанул ни туды и редактор сверху meta теги воткнул и т.п.

Сейчас вот убрал все до <?php. И в 7 строчке вот такая надпись: error_reporting(E_ALL & ~E_NOTICE);
И вроде, как все закрутилось, заработало.
Никак из-за этого, что ли такая проблемка была или нет?

   
 
 автор: mihdan   (10.04.2008 в 15:37)   письмо автору
 
   для: kak   (10.04.2008 в 15:21)
 

Да. Так как куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>.

   
 
 автор: kak   (10.04.2008 в 19:03)   письмо автору
 
   для: mihdan   (10.04.2008 в 15:37)
 

Спасибочки.

А я Вас сразу и не понял. Думаю про что это Вы?

   
 
 автор: kak   (11.04.2008 в 20:55)   письмо автору
 
   для: cheops   (10.04.2008 в 12:15)
 

Спасибо за подсказку.

   
Rambler's Top100
вверх

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