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

Ограничение на кол-во постов в день, как?


Fuker

Вопрос

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

  • 0

Добавить перед отправкой сообщений запрос к таблице постов. Что-то типа:

$DB->query("SELECT COUNT(pid) AS cpid FROM ibf_posts WHERE time>".(time()-86400)." AND member_id = ".$ibforums->member['id']);

Для 2.х конструкция будет чуть иная, но сам принцип такой.

Запрос отдает количество уже отправленных пользователем сообщений за последние 86 400 секунд (1 сутки).

 

Но ИМХО, дерьмо идея. Флуда не станет меньше, клонов станет больше. Оно надо?

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

  • 0

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

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

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

  • 0

помогите это переписать для конкретного юзера с конкретным числом ограничения сообщений в сутки 15, спасибо

я так понимаю эту конструкцию надо будет в пост.пхп засунут

	if ( $flood )
	{
		$this->ipsclass->DB->simple_construct( array( 'select' => '*',
													  'from'   => 'message_topics',
													  'where'  => "mt_owner_id={$member_id}",
													  'order'  => 'mt_date DESC',
													  'limit'  => array(0,1) ) );
		$this->ipsclass->DB->simple_exec();

		$last_pm = $this->ipsclass->DB->fetch_row();

		if ( $last_pm['mt_date'] + ($flood * 60) > time() )
		{
			return array('key' => 'error', 'lang' => 'pm_flood', 'extra' => "{$flood}");
		}
	}

	if ( $limit )
	{
		$time_range = time() - 86400;

		$this->ipsclass->DB->simple_construct( array( 'select' => 'count(mt_id) as cnt',
													  'from'   => 'message_topics',
													  'where'  => "mt_owner_id={$member_id} AND mt_date > {$time_range}",
							 )	  );
		$this->ipsclass->DB->simple_exec();

		$quota_sent = $this->ipsclass->DB->fetch_row();

		if ( $quota_sent['cnt'] + 1 > $limit )
		{
			return array('key' => 'error', 'lang' => 'pm_flood_max', 'extra' => "{$limit}");
		}
	}

	return FALSE;

}

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

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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