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

Разлогинивание пользователей (kick)


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

При просмотре рут-админом списка "кто в онлайне", рядом с айпишником появляется кнопочка "разлогинить". В самом деле разлогинивает.

Написал по-быстрому "на коленке", заранее извиняюсь за корявость кода.

 

Online.php

После

$sess['ip_address'] = "( <a href='{$ibforums->base_url}&act=modcp&CODE=ip&incoming={$sess['ip_address']}' target='_blank'>{$sess['ip_address']}</a> )";

добавил

if ( ($sess['member_id']) )
{
$sess['ip_address'] .= " [<a href='index.php?act=Login&CODE=kick&kickid=".$sess['id']."' title='Разлогинить пользователя'>x</a>]";
}

 

Login.php

После

			case 'autologin':
			$this->auto_login();
			break;

добавил

			case 'kick':
			$this->kick_member();
			break;

 

 

Перед

	 function auto_login()

добавил

function kick_member()
{
global $ibforums, $DB, $std, $print, $sess;

if($ibforums->member['mgroup'] == $ibforums->vars['admin_group'])
{
$DB->query("UPDATE ibf_sessions SET ".
			"member_name='',".
			"member_id='0',".
			"login_type='0' ".
			"WHERE id='". $ibforums->input['kickid'] ."'");
$print->redirect_screen( "пользователь разлогинен", 'act=Online&CODE=listall&sort_key=click' );
}
}

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

А зачем?

Один уникум придумал оригинальный способ гадить на форуме. Не буду описывать, чтобы других не учить.

"Лечением" служит удаление аккаунта, но обнаружилась "дырка": пока жива сессия, удаленный аккаунт не мешает бродить по страницам.

Наверное следовало дописать удаление сессии при удалении аккаунта, но я сразу не сообразил.

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

Ну дык после удаления аккаунта он уже будет ходить гостем.

 

И после того как ты его кикнешь, он тоже гостем будет.

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

Ну дык после удаления аккаунта он уже будет ходить гостем.

Пока не закроет окно браузера, ходит и ходит ником. Когда ник, запрещенный к регистрации, видишь в статистике активности, не отличить клона от сидящего по старой сессии.

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

Ну дык после удаления аккаунта он уже будет ходить гостем.

Пока не закроет окно браузера, ходит и ходит ником. Когда ник, запрещенный к регистрации, видишь в статистике активности, не отличить клона от сидящего по старой сессии.

 

Кот, такого быть просто не может :D

Потому что есть код форума ;) И я его читаю и вижу.

 

Допустим есть сессия, в сессии прописан чувак, member_id=x, хотя из ibf_members он уже удалён.

Он считывает этот x, а дальше загружает мембера:

				// It's a member session, so load the member.

			$this->load_member($this->session_user_id);

 

Соответственно если мембера нет, то ничего не загрузится и сработает вот этот код:

			//-------------------------------------------------
		// Unless they have a member id, log 'em in as a guest
		//-------------------------------------------------

		if ( ($this->member['id'] == 0) or (empty($this->member['id'])) )
		{
			$this->unload_member();
		}
	}

	unset($member_id);

 

Т.е. юзер сразу станет гостем :)

Не веришь, сам попробуй.

 

то что остаётся ник в списке "Кто на форуме", это ещё не значит, что в это время юзер под этим ником ходит. Этот ник просто висит, но под ним никто не ходит и не может ходить чисто гепотетически.

 

Можно даже вставить этот твой апдейт в функцию function dodelete ad_member.php

чтобы сессия удалялась или апдейтилась при удалении мембера, но это лишнее, как я уже говорил :)

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

ещё как нужный черт подери :D

для живущих в чате самое то )) захотел-кикнул кого-нибудь

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

ещё как нужный черт подери :D

для живущих в чате самое то )) захотел-кикнул кого-нибудь

В чате у меня есть кик. Не только разлогинивает, но и минуту (интервал настраивается) не пускает вновь залогиниться, следит по айпишнику и в куки пишет.

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

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

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

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

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

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

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

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

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

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

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

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