Cайты "под ключ"

Акция - Сайт визитка от 199 евро

Предложение

Дизайн сайтов, логотипов, фирменный стиль

Продвижие (SEO). Реклама

Поисковое продвижение, раскрутка, реклама
Главная arrow Сообщество arrow Статьи arrow Как добавить IP пользователя в письма из компонента Контакты?
Как добавить IP пользователя в письма из компонента Контакты? Версия для печати
(0 голосов)
tag Все о СMS Joomla!
Flex
  

По умолчанию в письмах от посетителей сайта, отправленных через стандартный компонент Контакты указано только их имя, email и непосредственно сам текст сообщения. Иногда же помимо этого требуется знать еще и IP-адрес автора сообщения. Такого функционала в компоненте Контакты нет, но путем несложной модификации можно его туда добавить.

По умолчанию в письмах от посетителей сайта, отправленных через стандартный компонент Контакты указано только их имя, email и непосредственно сам текст сообщения. Иногда же помимо этого требуется знать еще и IP-адрес автора сообщения. Такого функционала в компоненте Контакты нет, но путем несложной модификации можно его туда добавить.

ПРИМЕЧАНИЕ: перед внесением любых изменений рекомендуем сделать резервные копии модифицируемых файлов, чтобы при желании можно было откатиться на оригинальную версию.

Приступим к модификации, для этого открываем файл components/com_contact/contact.php, находим в нем строчку:

$text   = $prefix ."\n". $name. ' <'. $email .'>' ."\n\n". stripslashes( $text );

и заменяем ее на:

$text   = $prefix ."\n". $name. ' <'. $email .'>' . "\nIP: ". getenv( 'REMOTE_ADDR' ) ."\n\n". stripslashes( $text );

После этой модификации в тексте писем помимо имени и e-mail будет еще и IP-адрес отправителя. Однако, если он включит функцию отправки копии ему на e-mail, он тоже увидит, что его IP-адрес записан. Если в ваши планы не входит информирование пользователя о том, что его «посчитали», то делаем дополнительную модификацию: находим в нем строчку:

      $copy_text = $copy_text ."\n\n". $text .'';

и заменяем ее на:

      $text   = $prefix ."\n". $name. ' <'. $email .'>' ."\n\n". stripslashes( $text );
      $copy_text = $copy_text ."\n\n". $text .'';

В результате этой модификации в копии письма отправленной пользователю информации о его IP уже не будет.

В принципе приведенную модификацию можно слегка усложнить, сделав более «навороченную» функцию для определения IP-адреса посетителя. Данная функция учитывает возможность использования пользователем proxy-сервера. Для этого в первом случае (вторая часть модификации не затрагивается) код:

$text   = $prefix ."\n". $name. ' <'. $email .'>' ."\n\n". stripslashes( $text );

необходимо заменить на:

    $ip = "";
    $proxy = "";
    if (isset($_SERVER)) {
      if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
        $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
        $proxy = $_SERVER["REMOTE_ADDR"];
      } elseif (isset($_SERVER["HTTP_CLIENT_IP"])) {
        $ip = $_SERVER["HTTP_CLIENT_IP"];
      } else {
        $ip = $_SERVER["REMOTE_ADDR"];
      }
    } else {
      if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
        $ip = getenv( 'HTTP_X_FORWARDED_FOR');
        $proxy = $_SERVER["REMOTE_ADDR"];
      } elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
        $ip = getenv( 'HTTP_CLIENT_IP' );
      } else {
        $ip = getenv( 'REMOTE_ADDR' );
      }
    }
    if (strstr($ip, ',')) {
      $ips = explode(',', $ip);
      $ip = $ips[0];
    }
    if ($proxy != '') {
      $ip = $ip . '(Proxy: '.$proxy.')';
    }    
 
    $text   = $prefix ."\n". $name. ' <'. $email .'>' . "\nIP: ". $ip ."\n\n". stripslashes( $text );

По материалам: joomlaportal.ru

 
  Нет комментариев.

Быстрое сообщение

Комментарии (0)
< Пред.

рольставни описание на форуме.
отзывы xdevice micromap monza deluxe

Who's Online

Сейчас на сайте: 21

Заказать услугу

order

Форум

RSS


RSS 2.0


скачать игры торрент
Присоединяйся фильмы онлайн бесплатно скачать.

Интернет магазин

Интернет магазин. Разработка

Сопровождение

Поддержка и сопровождение сайтов

Администрирование

Администрирование серверов. Установка серверных приложений

Хостинг и домены

Профессиональный хостинг, регистрация доменов