Решил как-то на днях реализовать вывод IP-адреса посетителя в отдельном блоке. Пригодится данная фича может в самых разных случаях. Например:
Тоесть, вывод IP-адреса посетителя можно использовать в качестве инструмента. Потратив 5 минут на поиск готового модуля для Drupal, решил не заморачиваться и создать блок самостоятельно. Тем более, что ничего сложного нету - одна строка кода.
Итак, идем в Управление -> Конструкция сайта -> Блоки на закладку "Добавить блок". Заполняем следующие поля:
<?=@$_SERVER['REMOTE_ADDR']?>
Остальные поля - на усмотрение. Сохраняем блок и задаем его размещение. В моем случае - это правая колонка.
Также даный код можно использовать на страницах сайта в любом месте для вывода IP посетителя. Код будет работать на любом сайте с поддержкой PHP.
Re: Drupal - вывод IP-адреса посетителя
Спасибо, пригодилось. Заметил маленький недочет. Заработало, когда убрал "@"
<?=$_SERVER['REMOTE_ADDR']?>
Re: Drupal - вывод IP-адреса посетителя
Оператор управления ошибками
PHP поддерживает один оператор управления ошибками: знак (@). В случае, если он предшествует какому-либо выражению в PHP-коде, любые сообщения об ошибках, генерируемые этим выражением, будут проигнорированы.
Если вы установили собственную функцию обработки ошибок с помощью set_error_handler(), то она все равно будет вызвана, однако, если внутри этой функции будет вызвана функция error_reporting(), то она вернет 0, если функция, вызвавшая данную ошибку, была подавлена с помощью @.
В случае, если установлена опция track_errors , все генерируемые сообщения об ошибках будут сохраняться в переменной $php_errormsg. Эта переменная будет перезаписываться при каждой новой ошибке, поэтому в случае необходимости проверяйте ее сразу же.
Оператор @ работает только с выражениями. Есть простое правило: если что-то возвращает значение, значит вы можете использовать перед ним оператор @. Например, вы можете использовать @ перед именем переменной, произвольной функцией или вызовом include, константой и так далее. В то же время вы не можете использовать этот оператор перед определением функции или класса, условными конструкциями, такими как if, foreach и т.д.
Re: Drupal - вывод IP-адреса посетителя
я сделал ещё и резольв и браузер ;)
<!--IP--><p class="rtecenter">
Ваш IP-адрес: <?=@$_SERVER['REMOTE_ADDR']?><br />
Резольвится: <?=@gethostbyaddr ($_SERVER['REMOTE_ADDR'])?><br />
Браузер: <?php
if ( stristr($_SERVER['HTTP_USER_AGENT'], 'Firefox') ) echo 'firefox';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'Chrome') ) echo 'chrome';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'Safari') ) echo 'safari';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'Opera') ) echo 'opera';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.0') ) echo 'ie8';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 7.0') ) echo 'ie7';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0') ) echo 'ie6';
?></p>
<!--IP-->
Re: Drupal - вывод IP-адреса посетителя
Задумался над тем, чтобы и себе "поцепить" бек-резолв. Однако, исходим из того, что у многих айпишек он отсутствует - некоторые провайдеры не заморачиваются над этим. Поэтому у себя оставил как есть.