Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по классу, вылетает Apache 
:(
    Опции темы
izOne
  Дата 22.1.2004, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 22.8.2003
Где: Украина, Киев

Репутация: 3
Всего: 4



Код

class blocks{
   var $bout   = array();
   var $berr   = array();
   var $blck   = array();
   var $btable = "blocks";
   var $html   = "";
   var $tmpl   = array();

   function binit(){
       $num = func_num_args();
       if($num >= 1){
           for($i=0; $i<$num; $i++){
               $block = func_get_arg($i);
               if(!in_array($block, $this->blck)){
                   array_push($this->blck, $block);
               }
               return true;
           }
       }else{
           array_push($this->berr, "Нет блоков для инициализации");
           return false;
       }
   }

   function bget($module = "index"){
       $query = db_query("SELECT * FROM blocks WHERE module='".$module."' ORDER BY position, weight");
       if($rs = db_fetch_array($query)){
           do{
               if($this->bparse($rs['type'], $rs['from'], $rs['name'])){
                   $this->bout[$position] .= $this->html;
               }else{
                   array_push($this->berr, "Невозможно пропарсить блок");
               }
           }while($rs = db_fetch_array($query));
           return true;
       }else{
           return false;
       }
   }
   
   function bparse($type, $from, $name){
       if(empty($this->tmpl[$type])){
           $this->tmpl[$type] = _readfile(_SITE_PTMD."blocks/tmpl/".$type.".htm");
       }
       include_once(_SITE_PTMD.$from."/blocks/index.php");
       $function = $from."_blocks_".$name;
       if(function_exists($function)){
           $function($rs);
           $tmp = $this->tmpl[$type];
           foreach($rs AS $k => $v){
               $tmp = str_replace("{_BLOCKS_".strtoupper($k)."}", $v, $tmp);
               $this->html = $tmp;
           }
           echo $tmp;
       }
       return true;
   }
}
?>


Если на третьей строчке снизу не ставить return true; - скрипт работает, но от финкции bparse требуется возвращение либо true, либо false. В чем я ошибся?
--------------------
Успех ждет каждого, но иногда всю жизнь.
PM Jabber   Вверх
arial
Дата 22.1.2004, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Вылетает Apache confused.gif


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
MuToGeN
Дата 23.1.2004, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва

Репутация: 7
Всего: 32



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


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Гость_IZ@TOP
Дата 23.1.2004, 14:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Интересно, а откуда взялся $rs в функции bparse ? Конечно не зависнуть ... как можно в foreach перебирать несуществующий массив ... или Я что то не разглядел*?
  Вверх
izOne
Дата 24.1.2004, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 22.8.2003
Где: Украина, Киев

Репутация: 3
Всего: 4



Уже разобралсяsmile.gif
Проблема была в строчке $this->bout[$position] .= $this->html; которая теперь выглядит следующим образом $this->bout[$rs['position']] .= $this->html;
$position не была определена ранее, и поэтому, наверное, вылетала ошибка...

2Гость_IZ@TOP, $rs - результат работы функции в подключаемом php-скрипте

Цитата
function qwerty(&$rs){
...
$rs = array();
...
}


Спасибо за ваши ответы.
--------------------
Успех ждет каждого, но иногда всю жизнь.
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1122 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.