diff --git a/upload/ajax.php b/upload/ajax.php index 3beee530d..e53b6b7b5 100644 --- a/upload/ajax.php +++ b/upload/ajax.php @@ -277,9 +277,8 @@ class ajax_common $message = (string) $this->request['message']; if(!trim($message)) $this->ajax_die($lang['EMPTY_MESSAGE']); - $message = bbcode2html(DB()->escape($message)); - $message = str_replace('\n', '
', $message); - $this->response['html'] = $message; + $message = bbcode2html($message); + $this->response['html'] = $message; } function change_tor_status () diff --git a/upload/includes/bbcode.php b/upload/includes/bbcode.php index a9876d348..92b486abe 100644 --- a/upload/includes/bbcode.php +++ b/upload/includes/bbcode.php @@ -583,8 +583,9 @@ class bbcode function init_replacements () { $tpl = $this->tpl; - $url_exp = '[\w\#$%&~/.\-;:=?@\[\]+]+?'; + $url_exp = '[\w\#!$%&~/.\-;:=,?@а-яА-Я\[\]+]+?'; $img_url_exp = 'http://[^\s\?&;:=\#\"<>]+?\.(jpg|jpeg|gif|png)'; + $email_exp = '[a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+'; $this->preg = array( @@ -602,10 +603,10 @@ class bbcode "#\[img\]($img_url_exp)\[/img\]#i" => $tpl['img'], "#\[img=(left|right)\]($img_url_exp)\[/img\]\s*#i" => $tpl['img_aligned'], "#\[email\]($email_exp)\[/email\]#i" => '$1', - "#\[url\](https?://$url_exp)\[/url\]#i" => '$1', - "#\[url\](www\.$url_exp)\[/url\]#i" => '$1', - "#\[url=(https?://$url_exp)\]([^?\n\t].*?)\[/url\]#i" => '$2', - "#\[url=(www\.$url_exp)\]([^?\n\t].*?)\[/url\]#i" => '$2', + "#\[url\](https?://$url_exp)\[/url\]#iu" => '$1', + "#\[url\](www\.$url_exp)\[/url\]#iu" => '$1', + "#\[url=(https?://$url_exp)\]([^?\n\t].*?)\[/url\]#iu" => '$2', + "#\[url=(www\.$url_exp)\]([^?\n\t].*?)\[/url\]#iu" => '$2', ); $this->str = array(