Получить IP-адрес отправителя
На самом деле я тестирую веб-сайт с помощью Drupal 7.
Я ищу способ получить IP-адрес посетителей, когда они отправляют новый узел; пользователи также могут не входить в систему, так как анонимным пользователям разрешено отправлять новый контент.
Я не могу найти модуль для этого, и я не знаю, как использовать хуки или PHP для достижения этой цели.
Что мне делать?
3 answers
Я еще не нашел модуль, который бы это делал. Вы можете выполнить следующие действия:
- Создайте текстовое поле с именем ip_address
- Управление отображением: сделайте поле скрытым
- Используйте Набор отображения или пользовательский хук (или даже CSS), чтобы скрыть поле при заполнении формы
- Создайте правило для события "Перед сохранением содержимого"
- Задайте условие типа контента: ваш тип контента
- Установите условие сравнения данных: [узел: является новым], Значение данных: True (установите флажок)
- Задайте действие по заданию значения данных и задайте значение поля:
PHP-код
<?php
print ip_address();
?>
Этого должно хватить.
Вы также можете сделать это, создав модуль и используя некоторые крючки
Есть простой способ сделать это. Установите модуль Вычисляемое поле .
Добавьте вычисляемый файл (для IP-адреса) в свой тип контента и добавьте следующую строку в Вычисляемый код (PHP) текстовую область, чтобы получить текущий ip-адрес автора
$entity_field[0]['value'] = ip_address();
Вот и все.Вы получите отправленный IP-адрес автора. Нет необходимости устанавливать какие-либо другие модули
Я написал простой модуль для сохранения IP-адреса автора. С помощью этого модуля вы можете добавить поле в тип контента, которое заполняется автором ip-адреса при создании узла.