Перейти к содержимому
Русский язык для Invision Community 5

Последний вход с IP

Здравствуйте, решил сделать для группы админов и модеров показ ip пользователей в профиле.

Например когда пользователь на форуме то его ip показывает, Пример: Список онлайн.

 

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

 

Как так сделать? Какие за это переменные отвечают? И вообще есть ли они?

В ац есть что-то похоже но там показ с какого пользователь регался...

 

На данный момент когда в сети: http://hkar.ru/Fz4R

 

Когда в не сети: http://hkar.ru/Fz4S (как сделать так чтобы когда пользователь оффлайн то его ip показывал с какого он заходил последний раз?)

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

как сделать так чтобы когда пользователь оффлайн то его ip показывал с какого он заходил последний раз?
Обновлять с какого зарегистрировался при входе или добавить новое поле в таблицу и также обновлять при входе.
  • Автор

могли бы написать один из каких нить пунктов мануал ?

Без правки исходного кода никак это не сделать. Логируется только ип регистрации.

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

  • Автор

Не подскажите как создать, а то чёт забыл и новый пшпмайадмин какой-то не тот)))))))))))))

ALTER TABLE ibf_members ADD COLUMN `last_ip` varchar(46) NOT NULL DEFAULT ''

last_ip - имя колонки.

  • Автор

получается мне теперь в переменную выводить last_ip

Вы сообщения выше читали? Это поле нужно обновлять при авторизации пользователя.

  • Автор

я таблицу создал, что дальше надо сделать?

можете расписать мануал ?

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

Это поле нужно обновлять при авторизации пользователя.

 

/admin/sources/classes/session/publicSessions.php

 

Найти

 

	//-----------------------------------------
	// Knock out Google Web Accelerator
	//-----------------------------------------

Выше добавить

 

	if( self::$data_store['member_id'] )
	{
		if( isset( self::$data_store['last_ip'] ) AND self::$data_store['last_ip'] != $this->_member->ip_address )
		{
			$this->DB->update( 'members', array ( 'last_ip' => $this->_member->ip_address ), 'member_id='.intval( self::$data_store['member_id'] ), true );
		}
	}

  • Автор

не работает, по прежнему пустой ип, а в бд в колонку last_ip ко всем юзерам присвоился 1 айпи.

 

переменную надо использовать ip_address ?

в бд в колонку last_ip ко всем юзерам присвоился 1 айпи.

Поправил.

  • Автор

какую переменную надо использовать?

я только что бд сломал и никто из юзеров не мог войти...

какую переменную надо использовать?

Разве не очевидно что ту, которую создали для хранения последнего IP?...

 

 

я только что бд сломал и никто из юзеров не мог войти...

Бывает. Я тоже не одну бд сломал, пока учился. Главное не дропнуть форум, а если что иметь при себе бэкап.

  • Автор

ну все сделал, теперь пишет ошибка бд, гляньте сайт, ссылка на сайт есть в профиле.

колонка last_ip пуста

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.