Сообщество
Статьи
Как добавить IP пользователя в письма из компонента Контакты? | Как добавить IP пользователя в письма из компонента Контакты? |
|
Все о СMS Joomla!
| |
Flex |
|
|
По умолчанию в письмах от посетителей сайта, отправленных через стандартный компонент Контакты указано только их имя, email и непосредственно сам текст сообщения. Иногда же помимо этого требуется знать еще и IP-адрес автора сообщения. Такого функционала в компоненте Контакты нет, но путем несложной модификации можно его туда добавить. По умолчанию в письмах от посетителей сайта, отправленных через стандартный компонент Контакты указано только их имя, email и непосредственно сам текст сообщения. Иногда же помимо этого требуется знать еще и IP-адрес автора сообщения. Такого функционала в компоненте Контакты нет, но путем несложной модификации можно его туда добавить. ПРИМЕЧАНИЕ: перед внесением любых изменений рекомендуем сделать резервные копии модифицируемых файлов, чтобы при желании можно было откатиться на оригинальную версию. Приступим к модификации, для этого открываем файл components/com_contact/contact.php, находим в нем строчку: $text = $prefix ."\n". $name. ' <'. $email .'>' ."\n\n". ( $text ); и заменяем ее на: $text = $prefix ."\n". $name. ' <'. $email .'>' . "\nIP: ". ( 'REMOTE_ADDR' ) ."\n\n". ( $text ); После этой модификации в тексте писем помимо имени и e-mail будет еще и IP-адрес отправителя. Однако, если он включит функцию отправки копии ему на e-mail, он тоже увидит, что его IP-адрес записан. Если в ваши планы не входит информирование пользователя о том, что его «посчитали», то делаем дополнительную модификацию: находим в нем строчку: $copy_text = $copy_text ."\n\n". $text .''; и заменяем ее на: $text = $prefix ."\n". $name. ' <'. $email .'>' ."\n\n". ( $text ); $copy_text = $copy_text ."\n\n". $text .''; В результате этой модификации в копии письма отправленной пользователю информации о его IP уже не будет. В принципе приведенную модификацию можно слегка усложнить, сделав более «навороченную» функцию для определения IP-адреса посетителя. Данная функция учитывает возможность использования пользователем proxy-сервера. Для этого в первом случае (вторая часть модификации не затрагивается) код: $text = $prefix ."\n". $name. ' <'. $email .'>' ."\n\n". ( $text ); необходимо заменить на: $ip = ""; $proxy = ""; if (($_SERVER)) { if (($_SERVER["HTTP_X_FORWARDED_FOR"])) { $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; $proxy = $_SERVER["REMOTE_ADDR"]; } elseif (($_SERVER["HTTP_CLIENT_IP"])) { $ip = $_SERVER["HTTP_CLIENT_IP"]; } else { $ip = $_SERVER["REMOTE_ADDR"]; } } else { if ( ( 'HTTP_X_FORWARDED_FOR' ) ) { $ip = ( 'HTTP_X_FORWARDED_FOR'); $proxy = $_SERVER["REMOTE_ADDR"]; } elseif ( ( 'HTTP_CLIENT_IP' ) ) { $ip = ( 'HTTP_CLIENT_IP' ); } else { $ip = ( 'REMOTE_ADDR' ); } } if (($ip, ',')) { $ips = (',', $ip); $ip = $ips[0]; } if ($proxy != '') { $ip = $ip . '(Proxy: '.$proxy.')'; } $text = $prefix ."\n". $name. ' <'. $email .'>' . "\nIP: ". $ip ."\n\n". ( $text ); По материалам: |
|
Быстрое сообщение
Комментарии (0)
| < Пред. |
|---|
рольставни описание на форуме.
отзывы xdevice micromap monza deluxe
Добавить в закладки
RSS
Login




Flex 





