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

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

Когда пользователю дается предупреждение, то можно выставить:

 

Заблокировать пользователя.

 

Т.е. группа пользователя не Забаненный, но он не может видеть форум. Выскакиевает сообщение:

Вы временно заблокированы. Дата и время разблокирования — дата

 

Хочу тоже самое сделать на сайте, т.е. задать в юзверей форума запрос, и если заблокирован, то закрыть и сайт.

 

Подскажите, пожалуйства, поле в табличке.

 

Я как понял, это таблица members поле warn_level

 

Где warn_level = 1. Это и есть блокированные.

 

2х заблокировал и у обоих в этом поле 1.

 

Но смутило что поле int(10). Откуда тут могут быть такие числа (тут по смыслу или 1, или ничего...) Или могут?

 

Т.е если сделаю,

if ($warn_level == 1) {

die ("You banned...");

}

Это оно и есть, или нужно не так?

Заранее спасибо.

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

Отвечает за это следующий кусок из class_session.php:

			//-----------------------------------------
		// Check ban status
		//-----------------------------------------

		if ( $this->member['temp_ban'] )
		{
			$ban_arr = $this->ipsclass->hdl_ban_line(  $this->member['temp_ban'] );

			if ( time() >= $ban_arr['date_end'] )
			{
				//-----------------------------------------
				// Update this member's profile
				//-----------------------------------------

				$this->ipsclass->DB->simple_construct( array( 'update' => 'members',
															  'set'	=> "temp_ban=''",
															  'where'  => "id=".$this->member['id']
													 )	  );

				$this->ipsclass->DB->simple_shutdown_exec();
			}
			else
			{
				$this->ipsclass->member = $this->member;
				$this->ipsclass->Error( array( 'LEVEL' => 1, 'MSG' => 'account_susp', 'INIT' => 1, 'EXTRA' => $this->ipsclass->get_date($ban_arr['date_end'],'LONG', 1) ) );
			}
		}

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

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

 

То запрашиваю temp_ban, и если он не равен 0 или пусто, то редиктю на форум.

А уж тут, после проверки, он или отбанится или выскочет предупреждение о сроке блокирования.

 

Вроде верно все, тут либо пусто, либо ноль у нормальных и даты, у блокированных.

 

 

Спасибо. А то мнетя не туда занесло, ошибся, когда банил для тесту, и получилось что по warn_level нужно проверять, что не есть правильно.

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

warn_level - это количество предупреждений.

А temp_ban - это блокировка из панели модератора.

 

Можно смотреть и temp_ban но важно понимать, что при просто увеличении предупреждений до максимума temp_ban сам не изменяется.

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

Да, и ещё. Наличие инфы в этом поле ещё не говорит о бане, возможно он уже прошёл(см. код выше). Так что лучше всё-таки проверять поле на сайте.

 

Ещё можно проверять поля временного read-only и премодерации, смотрите их названия в warn*.php

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

Да, и ещё. Наличие инфы в этом поле ещё не говорит о бане, возможно он уже прошёл(см. код выше). Так что лучше всё-таки проверять поле на сайте.

 

Ещё можно проверять поля временного read-only и премодерации, смотрите их названия в warn*.php

Sannis, если он прошёл там будет пусто.

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

Если он прошёл и после этого юзер не был на форуме, то там не будет пусто.
Ссылка на комментарий
Поделиться на других сайтах

В таком случае можно считать что он всё ещё действует :))
Ссылка на комментарий
Поделиться на других сайтах

У меня есть простенькая "смотрелка", показывает не только бан (временный и постоянный), но и ридонли с премодерациями:
<?php
require 'conf_global.php';
Error_Reporting(1+2+4+8);
// Connect to the Database
if (!($link = mysql_pconnect($INFO['sql_host'], $INFO['sql_user'], $INFO['sql_pass'])))
{
echo( sprintf( "Нет соединения С базой данных!", mysql_error() ) );
exit();
};

echo "<html><head><title>".$INFO['board_name']." => Кто в банке?</title></head><body><table border=1 align=center><tr><th>Ник</th><th>RO</th><th>Премодерация</th><th>Бан</th><th>Профиль</th></tr>";

function parse($val){
if($val==1){return 'Постоянно';}
else{return $val;}
}
$query_messa= "SELECT id, name, restrict_post, mod_posts, temp_ban FROM `ibf_members` WHERE (restrict_post <>0 AND restrict_post <> 'NULL') or (mod_posts <>0 AND mod_posts <> 'NULL') or (temp_ban <>0 AND temp_ban <> 'NULL')";
if (!($result_messa = mysql_db_query($INFO['sql_database'], $query_messa))){	echo  mysql_errno(), mysql_error();  return 0; }
while($row_messa = mysql_fetch_array($result_messa))
{
echo "<tr>";
echo "<td>";
echo $row_messa['name'];
echo "</td>";
if($row_messa['restrict_post']==0 or $row_messa['restrict_post']=="NULL"){echo "<td> </td>";}
else{echo "<td align=center>".parse($row_messa['restrict_post'])."</td>";};

if($row_messa['mod_posts']==0 or $row_messa['mod_posts']=="NULL"){echo "<td> </td>";}
else{echo "<td align=center>".parse($row_messa['mod_posts'])."</td>";};

if($row_messa['temp_ban']==0 or $row_messa['temp_ban']=="NULL"){echo "<td> </td>";}
else{echo "<td align=center>".parse($row_messa['temp_ban'])."</td>";};

echo "<td><a href='index.php?showuser=".$row_messa['id']."'>Посмотреть</a></td></tr>";
};
echo "</table></body></html>";
?>

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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