Добрый день,
phpbb форум 2 версии, ошибка скорей связана в php, чем с самим форумом.
Был взлом форума, возможно попортили какие-то файлы не связанные с самим форумом. Дайте идеи, в какой направлении искать?
Вверху форума стали появляться такие сообщения
Цитата |
Warning: preg_match_all() [function.preg-match-all]: No ending delimiter '#' found in /home/webmaster/www/xxxx.ru/includes/bbcode.php on line 590
Warning: preg_replace() [function.preg-replace]: No ending delimiter '#' found in /home/webmaster/www/xxxx.ru/includes/bbcode.php on line 246
Warning: preg_match_all() [function.preg-match-all]: No ending delimiter '#' found in /home/webmaster/www/xxxx.ru/includes/bbcode.php on line 590
Warning: preg_replace() [function.preg-replace]: No ending delimiter '#' found in /home/webmaster/www/xxxx.ru/includes/bbcode.php on line 246 |
246 строка последняя в фрагменте из bbcode.
php // matches a xxxx://www.phpbb.com code..
$patterns[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url1'];
// http://www.phpbb.com code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url2'];
// phpBB code..
$patterns[] = "#\+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];
// [url=www.phpbb.com]phpBB code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url4'];
// user@domain.tld code..
$patterns[] = "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si";
$replacements[] = $bbcode_tpl['email'];
$text = preg_replace($patterns, $replacements, $text);
590 строка
Цитата |
$match_count = preg_match_all("#\[code:1:$uid\](.*?)\[/code:1:$uid\]#si", $text, $matches);
|
Игорь_Vasinsky
23.02.2013 - 21:00
у вас по факту ошибки в 2х строках
покажите эти строки.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
23.02.2013 - 21:42
Цитата (vga @ 23.02.2013 - 18:57) |
590 строка Цитата $match_count = preg_match_all("#\[code:1:$uid\](.*?)\[/code:1:$uid\]#si", $text, $matches); |
в этой строчке нет ошибки. Она точно из того файла?
#\+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#
ошибка синтаксиса или заменен ( на +, или удален (
#\+(?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#
#\[code:1:$uid\](.*?)\[/code:1:$uid\]#
если в переменную $uid передать ## - получится вышеуказанная ошибка на line 590
Игорь_Vasinsky
24.02.2013 - 22:51
http://php.net/manual/ru/function.preg-quote.php - для обработки данных.
и измени делемитеры на слеши
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Цитата (Игорь_Vasinsky @ 24.02.2013 - 18:51) |
для обработки данных |
символ # не является служебным символом в регулярных выражениях
Цитата |
измени делемитеры на слеши |
для чего? символ / - часть регулярного выражения, может добавить /, то есть экранировать - другое дело
Игорь_Vasinsky
24.02.2013 - 23:25
Цитата |
символ # не является служебным символом в регулярных выражениях |
а я что сказал что # будет экранироваться????
я сказал заменить делемитеры и использовать preg-quote()
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.