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

Борьба с "рекламщиками"


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

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

Да что и обычным группам.

 

Я ж говорю:

1) Создайте группу для поисковых машин

2) Поставьте поисковым машинам использовать эту группу

3) Поставьте нужные пермишены этой группе.

 

Роботы будут следовать этим пермишенам. В частности, если выключить для этой группы просмотр профилей, то роботы не будут индексировать ссылки с showuser=xxx и инфу из мемберлиста.[1119292449:1119292515]А если ещё и выключить этот пермишен для гостей, то и все остальные неотслеживаемые роботы не будут видеть эти страницы.

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

Это все здорово, но это никамим образом не избавит форум от аккаунтов с "услугами, девочками, турами" и прочей ерунды, на которой можно вполне реально зарабатывать, если, конечно, форум достаточно раскручен.
Ссылка на комментарий
Поделиться на других сайтах

Для этого, впринципе и существуют модераторы :D[1119345619:1119345658]или как-нибудь отключить парсинг ссылкок в подписе - что бы там вместо ссылок был обычны текст.
Ссылка на комментарий
Поделиться на других сайтах

или как-нибудь отключить парсинг ссылкок в подписе

Вот именно для этого и создавался мод. Ведь элементарно можно делейт переделать на исправление.

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

Я уж и не помню что там мод делает

просто можно не удалять

зачем?

это гониво и мало ли что там он поудаляет :D

а если ссылки не будут парсится - то интерес к рекламе уже отпадёт да и всё

а даже если зарегятся - делайте регулярно чистку неактивных пользователей - да и всё

 

кстати

как сделать что бы не парсились? этот мод может такое?

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

Постоянно чистить форум руками - это каменный век. Тем более, что есть пользователи, которые регются на форуме только для того, чтобы полноценно его читать, но сами ничего не пишут.

Если ты почитаешь эту тему, то там найдешь вариант строки мода, правящий подпись.

И потом: один из моих форумов обслуживает крупнейшего пассажирского перевозчика московского региона и если на этом форуме будет появляться реклама, то я очень быстро лишусь хорошего дохода, а постоянно контролировать новых юзеров просто не реально.

Мод писался для раскрученных форумов, где есть посетители, а не 5 человек в сутки, для коммерческих проектов, где любая негативная инфа или портит репутацию, или абсолютно не приемлима.

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

У меня чистятся пользователи автоматически по условию, что с последнего last_active прошло больше 6 месяцев. Причём после 5 месяцев сначала посылается письмо, если потом last_active не обновился, то ещё через месяц профиль убивается.
Ссылка на комментарий
Поделиться на других сайтах

Тем более, что есть пользователи, которые регются на форуме только для того, чтобы полноценно его читать, но сами ничего не пишут.

Согласен

Есть такие :D

 

Song

А last_active считается заходом на форум или последним сообщением?

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

последний пост - last_post

last_activity - соответственно последняя активность на форуме (любая).[1119441272:1119441337]А для тех кто ничего не пишет есть ещё last_visit

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

  • 7 месяцев спустя...

Интересная фишка. У меня на форуме проблемы с линками в подписи нет - редактировать подпись можно только по достижении определенного числа постов, а дятлы так долго на форуме не сидят :D Поэтому постят просто ссылки. Поэтому пришлось нарисовать мод, убивающий дятловские ссылки. Думаю его можно добавить в этот, чтобы защита была более продуктивной ;)

 

Для версии 2.1.4 выглядит так:

 

В файле /sources/classes/post/class_post.php ищем (в районе 812 строки) код

'topic_id'	=> "",
					'queued'	  => ( $this->obj['moderate'] == 1 || $this->obj['moderate'] == 3 ) ? 1 : 0,
					'post_htmlstate' => intval($this->ipsclass->input['post_htmlstatus']),
				 );

 

Под ним вписываем следующую штуку

// VXG - Check if member has a right to post links.
	$link_perm = 20; // Если у пользователя меньше, чем 20 постов - его линк будет заменятся на наш!

	$r = $this->ipsclass->DB->simple_exec_query( array( 'select' => 'posts', 'from' => 'members', 'where' => "id=".$this->ipsclass->member['id']) );

	//if ( $tmp['notify_modq_emails'] == "" )

	//$this->ipsclass->DB->build_query( array( 
	//											 'select'   => 'members.posts',
	//											 'from'	 => 'members',
	//											 'where'	=> 'members.id = '.($this->ipsclass->member['id']));
	//											 
	// $this->ipsclass->DB->simple_exec();

	if ($r['posts'] < $link_perm) {
				$post['post']=preg_replace( '/<.*href="?(.*:\/\/)?([^ \/]*)([^ >"]*)"?[^>]*>(.*)(<\/a>)/','<a href=http://pesikot.com>Pesikot.com</a>' ,$post['post']); 
			}

	// End VXG part

 

Вместо ссылки на Pesikot.com подставьте свой линк, либо просто пустую строку. Лично мне было жаль поисковых ботов, которые придут на добавленный пост (если я не успею его убить), так пусть схарчат линк на мой же сайт :)

 

PS Не помню как было в 2.0.х, но думаю что для него хак тоже должен сработать.

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

  • 3 месяца спустя...

Вообще код можно значительно уменьшить, увеличив при этом скорость работы скрипта.

 

Для этого код

$query = "SELECT * FROM $t";
$result = mysql_query($query);

$x = 0; $xx = 0;

while ( $x < mysql_numrows($result) ):
$query = "SELECT * FROM $t";
$result = mysql_query($query);
$sig = mysql_result($result, $x, 'signature');

// Здесь вместо значения href можно подставить
// любое другое значение, которое будет однозначно
// определять аккаунты, созданные рекламщиками.
if ( strpos($sig, "href") )

{
$xx++;
$id = mysql_result($result, $x, 'id');
$query = "DELETE FROM `".$t."` WHERE `id`=".$id." LIMIT 1;";
$result = mysql_query ( $query );
$query = "SELECT * FROM $t1";
$result = mysql_query($query);
$sp = mysql_result($result, $x, 'name');
$query = "DELETE FROM `".$t1."` WHERE `id`=".$id." LIMIT 1;";
$result = mysql_query ( $query );

$yu = 'Удален спамер '.$sp;
$this->class->append_task_log( $this->task, $yu );

}
$x++;
$query = "SELECT * FROM $t";
$result = mysql_query($query);
endwhile;

нужно заменить или на:

 

 

$result = mysql_query("SELECT id, signature FROM $t");
$xx = 0;
while ($row = mysql_fetch_array($result))
	{
	if (strpos($row['signature'], 'href')) 
		{
		mysql_query ("UPDATE $t SET signature = 'Реклама недопустима!' WHERE id = $row[id]");
		$xx++;
		}
	}

(это что б заменять подпись со ссылкой на "Реклама недопустима!", ну или любой другой текст вплоть до пустого),

 

 

или на:

$result = mysql_query("SELECT id, signature FROM $t");
$xx = 0;
while ($row = mysql_fetch_array($result))
	{
	if (strpos($row['signature'], 'href')) 
		{
		mysql_query ("DELETE FROM $t WHERE id=$row[id]");
		mysql_query ("DELETE FROM $t1 WHERE id=$row[id]");
		$xx++;
		}
	}

(это что б удалять аккаунт такого пользователя).

 

П.С.:

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

Лучше делать такие сообщения анонимными (ну типа "Гость" написал, хотя странно будет смотреться, если гостям писать запрещено), или удалять такие сообщения.

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

×
×
  • Создать...

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

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