Как узнать ip адрес гостей в K2

Автор: Илья Остапенко /

Приветствую всех читателей блога! Сегодня я хотел бы рассказать вам, как узнать ip адрес гостей, которые комментируют ваш сайт на K2. Зачем это надо? Да все просто, спам в интернете прогрессирует,  я хоть и сам писал про спам вконтакте, но мой способ спама единичный и мало кому навредил.

Как узнать ip адрес гостей в компоненте K2

А вот мне уже надоели эти долбанные спамеры, которые оставляют по три комментария в день. Я понимаю, что стандартная капча уже не такая-то и защита от спама, и её можно обойти с помощью различных программ, которые умеют работать с сервисами распознавания капчи. Кстати скоро напишу пост о том, как улучшить капчу, вернее сделать её такой же, как у меня, если вам это интересно обязательно подпишитесь на обновления блога.  Ну а если вам интересна эта тема, тогда читайте далее.

Так вот, если вы используете на своем сайте компонент K2, то вы знаете, что в админке компонента отображаются ip, только зарегистрированных пользователей. На блоге такой вариант не подойдет, регистрация мне не нужна, от неё будет ещё больше спама. Поэтому на блоге могут оставлять комментарии гости. Есть вариант ставить модерацию комментариев, но мне она тоже не подходить, я просто не хочу её включать, спамить от этого меньше не будут. Капчу, как говорил выше легко обходят. Потому для меня остается вариант узнать ip спамеров и банить их, такие посетители мне не нужны.  Что для этого нужно сделать:

 

Что надо сделать, чтобы узнать ip адрес гостей?

1.  Соединиться с базой данных вашего сайта, как это сделать описывать не буду, так как на каждом хостинге все по-разному.  Обычно соединение с БД идет через установленную на сервере программу PHPMyAdmin. Так как у меня соединение идет через эту программу, я буду описывать работу с ней. Вам необходимо найти таблицу #_k2_comments (надеюсь вы понимаете что вместо # будет префикс вашей БД) и в ней добавить ещё одно поле. Назовем его ip, тип VARCHAR, длинна значения – 18, больше никаких значений добавлять не надо.

редактируем базу данных k2

2.  Теперь отправляемся в корневую папку Joomla и переходим по следующему пути/components/com_k2/templates/default. В этой папке нам нужно отредактировать файлitem_comments_form.php. Найдите строчку <span id="formLog"></span>  и добавьте после неё следующую строку:

Сейчас я объясню, что значит эта строка. Добавляем скрытое поле, для поля ip в таблице#_k2_comments, а в его значение (value) добавляем переменную $userIP которая получает ip адрес пользователя. Ну и при добавлении комментария, в БД вместе с остальными данными передается ip адрес пользователя.

3. Теперь, нам нужно чтобы в админке, во вкладке комментарии, отображался ip адрес комментатора.  Возвращаемся в корневую папку Joomla, переходим по следующему пути /administrator/components/com_k2/tables и редактируем файл k2comment.php.  Сюда нам надо добавить переменную для поля ip, поэтому ко всем переменным добавляем ещё одну:

Это нужно для того чтобы брать значения из поля ip в базе данных. Более подробно об этом файле? я описывал в статье «Вывод данных из базы данных», если вам что-то не понятно обязательно прочитайте или спросите.

4.  Теперь нам нужно отредактировать  файл вида, default.php, который находиться по пути/administrator/components/com_k2/views/comments/tmpl.  В этом файле вам необходимо найти следующий код:

В этом блоке кода вам надо заменить все commenterLastVisitIP, на ip. То есть у вас должен быть вот такой вот код:

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

Итоговый результат

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

Комментарии к записи


    Георгий

      Илья Остапенко

Оставить комментарий

Это не спам.