Удалять ссылки анонимов

Проблемы с установкой или работой phpBB 2.0.x? Ищите ответы здесь!
Аватара пользователя
w00zy
phpBB 1.0.0
Сообщения: 7
Стаж: 19 лет 2 месяца

Удалять ссылки анонимов

Сообщение w00zy »

Как-то был открыт форум, в который писали анонимусы. Задолбали товарищи, приходящие и пишущие "Ах-ты, ух-ты, а вот и мой сайт" Причём их ломало зарегится... Ну типа народ индексы поднимал...
Тогда я стал резать ссылки из постов анонимов, наглухо.

В общем в связи с нек. обстоятельствами (более удобный апгрейд, и пр.) практически все добавления выношу в отдельный файл функциями и классами, потом инклюдю. Часто очень неохото глубоко забираться в код, и просто работаю с переменными и массивами уже полностью обработанными стандартными функциями.
функция удаления линков

Код: Выделить всё

function delete_anonimous_link($string)
{
$search = array ("'\[url=[^>]*?\]'", "'\[/url\]'", "'http://'");
$replace = array ("- [B][size=9]", "[/size][/B]- ", "link: ");
$string = preg_replace($search, $replace, $string);
return $string;
}
и вызываю её в posting.pnp
было

Код: Выделить всё

                        $username = ( !empty($_POST['username']) ) ? $_POST['username'] : '';
                        $subject = ( !empty($_POST['subject']) ) ? trim($_POST['subject']) : '';
                        $topic_desc = ( !empty($_POST['topic_desc']) ) ? trim($_POST['topic_desc']) : '';
                        $message = ( !empty($_POST['message']) ) ? $_POST['message'] : '';
Стало (можно было много меньше, но нефиг)

Код: Выделить всё

                        if (!$userdata['session_logged_in'] )
                        {
                        $username = ( !empty($_POST['username']) ) ? $_POST['username'] : '';
                        $subject = ( !empty($_POST['subject']) ) ? trim($_POST['subject']) : '';
                        $topic_desc = ( !empty($_POST['topic_desc']) ) ? trim($_POST['topic_desc']) : '';
                        $message = ( !empty($_POST['message']) ) ? $_POST['message'] : '';
                        $message = delete_anonimous_link($message);
                        } else {
                        $username = ( !empty($_POST['username']) ) ? $_POST['username'] : '';
                        $subject = ( !empty($_POST['subject']) ) ? trim($_POST['subject']) : '';
                        $topic_desc = ( !empty($_POST['topic_desc']) ) ? trim($_POST['topic_desc']) : '';
                        $message = ( !empty($_POST['message']) ) ? $_POST['message'] : '';

                        }
Теперь снова решил открыть одну категорию, и в связи с этим вопрос - может есть другая возможность, чем использовал я? Оговорюсь, что у меня phpBB+, но тот-же нос, только вид сбоку.
Jovani
phpBB 2.0.5
Сообщения: 477
Стаж: 21 год

Сообщение Jovani »

Ты резал на этапе создания сообщения, наверно можно как вариант, резать(удалять) после. То есть, пройтись скриптом по сообщениям ...

Тут нечто подобное я делал:
http://www.phpbbguru.net/community/viewtopic.php?t=4873
Если немного изменить, то сделает то, что нужно :)
Аватара пользователя
w00zy
phpBB 1.0.0
Сообщения: 7
Стаж: 19 лет 2 месяца

Сообщение w00zy »

Я пробывал после - больше кода выходит. Приходится резать <a href=.... и т.д. больше подстановок - медленнее скрипт. Так компактнее вышло.

Вернуться в «Поддержка phpBB 2.0.x»