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

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

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

 

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

 

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

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

 

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

 

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

 

Я как понял, это таблица 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>";
?>

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

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

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

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

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

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

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

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

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

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

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

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