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

Модификация для защиты от спама в PM


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

В messenger.php делаю так:

 

		//-----------------------------------------
	// Post process the editor
	// Now we have safe HTML and bbcode
	//-----------------------------------------

	$this->ipsclass->input['Post'] = $this->msglib->postlib->han_editor->process_raw_post( 'Post' );

	// VXG - If there's a URL in the PM - kill it!
	$pattern1 = "^([\d\w-.]+?\.(a[cdefgilmnoqrstuwz]|b[abdefghijmnorstvwyz]|
c[acdfghiklmnoruvxyz]|d[ejkmnoz]|e[ceghrst]|f[ijkmnor]|g[abdefghilmnpqrstuwy]|
h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|
m[acdghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|
qa|r[eouw]|s[abcdeghijklmnortuvyz]|t[cdfghjkmnoprtvwz]|u[augkmsyz]|
v[aceginu]|w[fs]|y[etu]|z[amw]|aero|arpa|biz|com|coop|edu|info|int|gov|
mil|museum|name|net|org|pro|ru|ua)(\b|\W(?<!&|=)(?!\.\s|\.{3}).*?))(\s|$)";
	$pattern2 = "^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU|RU|ru)$";

	$post_text = $this->ipsclass->input['Post'];
	if (!preg_match($pattern1, $post_text)) {
		//do comething
		$post_text = preg_replace($pattern1, "http://pesikot.com", $post_text);

	} elseif (!preg_match($pattern2, $post_text)) {
		 $post_text = preg_replace($pattern2, "http://pesikot.com", $post_text);
	}
	// VXG - end

 

IPB ругается: IPB WARNING [2] preg_match(): No ending delimiter '^' found (Line: 1446 of /sources/action_public/messenger.php) на переменную $pattern1, где лежит одно из регулярных выражений (покоцал переводами строки, иначе очень длинная строка получается). Его я брал на RegExpLib, там же проверил - все работает. Почему не работает в Invision? Что я делаю не так?

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

Как и было написано - no ending delimiter. Regular expressions должны начинаться и заканчиваться одним и тем же символом. RTFM, короче, надо было сделать :D
Ссылка на комментарий
Поделиться на других сайтах

catbegemot.net, а если я другу ссылку на яндекс или на тему кину? :D
Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
catbegemot.net, а если я другу ссылку на яндекс или на тему кину? :D

 

Твои проблемы ;) Теоретически пропускать не должно :)

 

в паттернах в начале и в конце нет слешей ;)

 

Я ж говорю - RTFM Надо было сделать :)

 

а можно полный код этого мода?

 

Он там наверху :) Только добавить прямые (ни в коем случае не обратные) слэши вначале и в конце регулярных выражений.

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

Он там наверху Только добавить прямые (ни в коем случае не обратные) слэши вначале и в конце регулярных выражений.

я только начинаю изучать PHP и IPB

напишите полный код или где именно поставить...

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

Твои проблемы Теоретически пропускать не должно

Это как раз то твои проблемы и проблема твоего мода. :D

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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