Перейти к контенту
  • 0

После обновления Freebsd не работает IP.Downloads


Kvendi

Вопрос

ОБновил у себя на сервере FreeBSD до 6.2 теперь почему- то при попытке добавить файл в IP.Downloads (1.1.2) пишет ошибку (даже при отображении страницы заполнения полей для добавления файла) Warning: preg_match_all() [function.preg-match-all]: Compilation failed: nothing to repeat at offset 0 in ..../sources/classes/bbcode/class_bbcode_core.php on line 858

Если все поля заполнить и нажать добавить файл, то просто выскакивает главная страница форума. При этом кроме ошибки вверху страницы ( речь про страницу добавления файла) сама страница выглядит несколько странно ( как будто все увеличено) http://i040.radikal.ru/0711/a3/ccd994fba934.jpg. Да, собственно обновилась только ось, apache, PHP, Mysql,екстеншены все остались тех же версий что и были. Где может быть проблема ?

Да, вот собственно отрывок файла class_bbcode_core.php (жирным выделена строка, на которую происходит "ругань")

 

//-----------------------------------------

// Slightly slower

//-----------------------------------------

 

while ( preg_match_all( "#".$preg_tag."?#si", $t, $match ) )

{

for ( $i = 0; $i < count($match[0]); $i++)

{

//-----------------------------------------

// Does the option tag come first?

//-----------------------------------------

 

$_option = 1;

$_content = 2;

 

if ( $row['bbcode_switch_option'] )

{

$_option = 2;

$_content = 1;

}

else if( count( $match ) == 2 )

{

$_content = 1;

}

 

# XSS Check: Bug ID: 980

if ( $row['bbcode_tag'] == 'post' OR $row['bbcode_tag'] == 'topic' OR $row['bbcode_t

{

$match[ $_option ][$i] = intval( $match[ $_option ][$i] );

}

 

# Recurse?

if ( preg_match( "#".$preg_tag."#si", $match[ $_content ][$i] ) )

{

$match[ $_content ][$i] = $this->post_db_parse_bbcode( $match[ $_content ][$

}

 

$tmp = '[' . $row['bbcode_tag'];

 

if( $row['bbcode_useoption'] )

{

$tmp .= '={option}';

}

 

$tmp .= ']{content}[/' . $row['bbcode_tag'] . ']';

 

$tmp = str_replace( '{option}' , $match[ $_option ][$i], $tmp );

$tmp = str_replace( '{content}', $match[ $_content ][$i], $tmp );

$t = str_replace( $match[0][$i], $tmp, $t );

}

}

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Вроде не ошибся

cd /usr/ports/devel/php5-pcre/

make install

apachectl restart

 

Или это не то ?

 

Кажется понял, забыл make clean , сейчас попробую

 

Пересобрал

/usr/ports/devel/php5-pcre/

пересобрался нормально

проверил тестовый файлик

<?php

preg_match_all("|<[^>]+>(.*)</[^>]+>|U",

"<b>example: </b><div align=left>this is a test</div>",

$out, PREG_PATTERN_ORDER);

echo $out[0][0] . ", " . $out[0][1] . "\n";

echo $out[1][0] . ", " . $out[1][1] . "\n";

?>

 

Отрабатывается нормально, но ошибка на той странице осталась таже ( может что-то еще все- атки надо сделать ?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Вот что написал вверху страницы:

 

 

#\\<\{POST_SNAPBACK\}\>?#si#\

(.*?)?#si#\

(.*?)?#si#\

(.*?)?#si#\(.*?)?#si#\(.*?)?#si#\

CODE\\

(.*?)?#si#\(.*?)?#si#\(.*?)?#si#\

\

\\\\\

(.*?)?#si#\<\!--blog\.extract\.start--\>(.*?)\<\!--blog\.extract\.end--\>?#si#\(.*?)?#si#\(.*?)?#si#\(.*?)?#si#\(.*?)?#si#\

\(.*?)\ \(.*?)\ ?#si#\[source\]\(.*?)\\[/source\]?#si#\\<\{POST_SNAPBACK\}\>?#si#\

(.*?)?#si#\

(.*?)?#si#\

(.*?)?#si#\(.*?)?#si#\(.*?)?#si#\

CODE\\

(.*?)?#si#\(.*?)?#si#\(.*?)?#si#\

\

\\\\\

(.*?)?#si#\<\!--blog\.extract\.start--\>(.*?)\<\!--blog\.extract\.end--\>?#si#\(.*?)?#si#\(.*?)?#si#\(.*?)?#si#\(.*?)?#si#\

\(.*?)\ \(.*?)\ ?#si#\[source\]\(.*?)\\[/source\]?#si#?#si

 

 

Скрин: http://i034.radikal.ru/0711/da/aae236601142.jpg

Ссылка на комментарий
Поделиться на других сайтах

  • 0
т.е. как я понимаю надо смотреть $preg_tag до выполнения этого цикла в том же файле class_bbcode_core.php ?
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Сейчас для теста просто заменил class_bbcode_core.php аналогичным из дистрибутива, ошибка не пропала (
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Попробовал в сумме следующее:

удалил все кастом теги.

обновил файл из дистрибутива, пересторил кеши все равно тоже самое, ничего не понимаю (

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Непонятно почему раньше просто этой ошибки не было, в class_bbcode_core.php была ошибка как раз в месте, где в $preg_tag закрываются теги строка которая собственно это делала была закоменчена почему- то
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.