LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
13.02.2012, 07:02:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Ip адрес пользователя  (Прочитано 2108 раз)
0 Пользователей и 1 Гость смотрят эту тему.
TK
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 70



« : 24.02.2008, 14:59:22 »

Предлагаю добавить поле ip в бд.
Не большой хак:
Выполняем sql-запрос:
ALTER TABLE `jos_users` ADD `ip` VARCHAR( 15 ) NOT NULL ;
Открываем <joostinaroot>\components\com_registration\registration.php
Находим    $row->password   = trim( $row->password ); (Строка ~160)
Добавляем    $row->ip   = trim( $row->ip );
Находим           $row->registerDate    = date('Y-m-d H:i:s'); (Строка ~183)
Добавляем         $row->ip    = $_SERVER['REMOTE_ADDR'];
Находим      $username    = trim($row->username); (Строка ~193)
Добавляем   $ip      = trim($row->ip);
Сохраняем, закрываем.
Открываем <joostinaroot>\administrator\components\com_users\admin.users.php
Находим      $row->password = trim( $row->password ); (Строка ~222)
Добавляем   $row->ip   = trim( $row->ip );
Открываем <joostinaroot>\administrator\components\com_users\admin.users.html.php
Находим       <th width="15%" class="title">
         Последнее посещение
         </th>
Добавляем
         <th width="10%" class="title">
         IP
         </th>         
Находим         <td class="jtd_nowrap">
         <?php echo mosFormatDate( $row->lastvisitDate, _CURRENT_SERVER_TIME_FORMAT ); ?>
         </td>
Добавляем          <td>
         <?php echo $row->ip; ?>
         </td>
Сохраняем, закрываем.

И мамбот ipfilter

Надеюсь меня поддержут  Cool
Записан
boston
Moderator
*****

Репутация: +222/-3
Offline Offline

Пол: Мужской
Сообщений: 2940



« Ответ #1 : 25.02.2008, 09:01:08 »

Лучше хранить не в новом поле, а в качестве одного из параметров. Тогда базу не придёться править Azn
Записан
TK
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 70



« Ответ #2 : 26.02.2008, 14:09:06 »

Можно Azn
так проглядел маленько и что-то не вижу как с параметром в базе работать
Наводочку не дашь?Azn
Записан
boston
Moderator
*****

Репутация: +222/-3
Offline Offline

Пол: Мужской
Сообщений: 2940



« Ответ #3 : 26.02.2008, 14:50:30 »

Всё просто. Открываешь administyrator/components/com_user/user.xml , там прописываешь новое поле через <params bla-bla-bla>, можешь посомтреть синтаксис в xml файлах ботов или модулей.
Всё.
Открываешь в админке страницу пользователей - там справа будет это новое поле, вписываешь любой текст - сохранаяешь польхзователя, сомтришь Wink
Это поле сохраняется в таблицу юзеров, столбец param, или attribs - не помню точно. В нём все параметры пользователя, например выбранный редактор.
Если надо сделать поиск или выборку по этому параметры в sql - то пишешь типа select username from#__user where param like "%tvo_name=$searsh\n%".
Параметры по правилам Joomla / Joostina хранятся по типу:
название-параметра1=значение-параметра1 \n
название-параметра2=значение-параметра2 \n
название-параметра3=значение-параметра3 \n

где \n - это физический перевод строки, т.е. не <br />
Записан
TK
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 70



« Ответ #4 : 26.02.2008, 20:14:45 »

Довольно забавно:)
<param name="ip" type="text" default="" label="IP пользователя" description="IP адрес этого пользователя" />
Теперь из com_registration надо как-то в базу ип записать Azn
а как?)
Записан
boston
Moderator
*****

Репутация: +222/-3
Offline Offline

Пол: Мужской
Сообщений: 2940



« Ответ #5 : 27.02.2008, 10:45:43 »

Не надо заводить новую базу - IP будет храниться в базе пользователей.
Записан
TK
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Мужской
Сообщений: 70



« Ответ #6 : 27.02.2008, 10:58:58 »

ну я имел ввиду как в params записать ip=bla.bla.bla.bla ? Azn
Записан
boston
Moderator
*****

Репутация: +222/-3
Offline Offline

Пол: Мужской
Сообщений: 2940



« Ответ #7 : 27.02.2008, 11:42:34 »

Когда прописываешь этот параметр в XML - то он автоматом записывается в базу, и сохраняется в настройках пользователя. Но это при редактировании через админку. С фронта надо будет немного попариться.
Записан
Andros
Давно я тут
****

Репутация: +9/-1
Offline Offline

Пол: Мужской
Сообщений: 373



« Ответ #8 : 30.11.2009, 20:52:50 »

А как реализовать, чтобы вошедший на сайт пользователь по айпишнегу определенного региона попадал в определенную категорию? Как например, на сайте dns-shop, заходишь, и сам сайт тебя перенаправляет на инфо твоего города.
Записан
Виталик
Группа развития
*****

Репутация: +75/-0
Offline Offline

Пол: Мужской
Сообщений: 1308



« Ответ #9 : 30.11.2009, 21:02:26 »

интереснее сохранять все IP всех пользователей в отдельной таблице, то есть кто, когда и с какого IP был на сайте
Записан
beliyadm
Профи
********

Репутация: +1432/-61
Offline Offline

Пол: Мужской
Сообщений: 9254


Севастополь==Россия


« Ответ #10 : 30.11.2009, 22:48:50 »

интереснее сохранять все IP всех пользователей в отдельной таблице, то есть кто, когда и с какого IP был на сайте
посещаемость 500 уников в день, через месяц таблица 15000 записей, через год 180 000 - к чему такой бред хранить?
Записан
imss
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 112


« Ответ #11 : 07.12.2009, 00:36:54 »

посещаемость 500 уников в день, через месяц таблица 15000 записей, через год 180 000 - к чему такой бред хранить?
Поддерживаю, но не плохо бы в какой0нибудь хэш запихнуть
что-то типа:
if(isset($_SERVER[HTTP_X_FORWARDED_FOR])){
if( $_SERVER[HTTP_X_FORWARDED_FOR] != '') {
   $USER_hostname = gethostbyaddr($_SERVER[HTTP_X_FORWARDED_FOR]);
} else {
   $USER_hostname=gethostbyaddr($_SERVER[REMOTE_ADDR]);
}
$USER_hostip=gethostbyname("$USER_hostname");

Чтобы при необходимости получить данные пользователя.
А так же не плохо бы идентифицировать пользователя установкой ему куки, например:
if ( $_COOKIE['user_ID'] != '') {
   $ID_User = $_COOKIE['user_ID'];
} else {
   $ID_User = time()+mt_rand();
   setcookie("user_ID",$ID_User,time()+(3600*24*365*19),'/');
}

И всё это в index.php
Записан
Andros
Давно я тут
****

Репутация: +9/-1
Offline Offline

Пол: Мужской
Сообщений: 373



« Ответ #12 : 16.01.2010, 19:23:23 »

А как реализовать, чтобы вошедший на сайт пользователь по айпишнегу определенного региона попадал в определенную категорию? Как например, на сайте dns-shop, заходишь, и сам сайт тебя перенаправляет на инфо твоего города.
А на этот вопрос есть решение?
Записан
beliyadm
Профи
********

Репутация: +1432/-61
Offline Offline

Пол: Мужской
Сообщений: 9254


Севастополь==Россия


« Ответ #13 : 16.01.2010, 19:30:31 »

А на этот вопрос есть решение?
если иметь базу IP-регион - можно без проблем, но насколько я знаю, подобные базы актуального содержимого продаются за деньги и достаточно быстро устаревают, потому готового решения скорей всего нет
Записан
Lex
Тестеры
*****

Репутация: +246/-1
Offline Offline

Пол: Мужской
Сообщений: 1851


« Ответ #14 : 16.01.2010, 19:32:40 »

http://www.it2k.ru/projects/class-ipgeo/
Записан
Andros
Давно я тут
****

Репутация: +9/-1
Offline Offline

Пол: Мужской
Сообщений: 373



« Ответ #15 : 16.01.2010, 19:54:28 »

http://www.it2k.ru/projects/class-ipgeo/
Чет не понял, как пользоваться этим добром...
Мне надо, чтобы пользователь зашел на сайт, и был переадресован joostina на раздел для своего города, если города нет в разделах, то на общий раздел.
Записан
Andros
Давно я тут
****

Репутация: +9/-1
Offline Offline

Пол: Мужской
Сообщений: 373



« Ответ #16 : 13.02.2010, 18:32:59 »

Есть решение по моему вопросу?
Записан
imss
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 112


« Ответ #17 : 13.02.2010, 18:49:45 »

Есть решение по моему вопросу?
Сам класс скачай с http://download.ru/products/class-ipgeo?category_id=3
и всё станет понятно :-)
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet