@raf060996

Как отправить IP адрес вместе с другими данными — PHP?

Доброго времени суток!
Имеется PHP код
<?require $_SERVER["DOCUMENT_ROOT"].'/../phpmailer/PHPMailerAutoload.php'; ?>
<?
$arResult = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $msgHtml = '';
        $msg = '';
        if (!empty($_POST['title'])) {
            $msgHtml .= '<p>'.$_POST['title'].'</p>';
            $msg .= $_POST['title']."; \n";
        }
        if (!empty($_POST['name'])) {
            $msgHtml .= '<p><b>Имя: </b>'.$_POST['name'].'</p>';
            $msg .= 'Имя: '.$_POST['name']."; \n";
        }
        if (!empty($_POST['phone'])) {
            $msgHtml .= '<p><b>Телефон: </b>'.$_POST['phone'].'</p>';
            $msg .= 'Телефон: '.$_POST['phone']."; \n";
        }
        if (!empty($_POST['email'])) {
            $msgHtml .= '<p><b>E-mail: </b>'.$_POST['email'].'</p>';
            $msg .= 'E-mail: '.$_POST['email']."; \n";
        }
        if (!empty($_POST['comment'])) {
            $msgHtml .= '<p><b>Комментарий: </b>'.$_POST['comment'].'</p>';
            $msg .= 'Комментарий: '.$_POST['comment']."; \n";
        }
        if (!empty($_POST['meta'])) {
            $msgHtml .= '<p><b>Выбранные параметры</b></p>';
            $msgHtml .= "<p>" . $_POST['meta'] . "</p>";
            $msg .= $_POST['meta']."; \n";
        }
        $mail = new PHPMailer;
        $mail->CharSet = 'UTF-8';
        $mail->addAddress('здесь моя почта');
        if (!empty($_POST['title'])){
            $mail->Subject = 'SLTD: '. $_POST['title'];
        } else {
            $mail->Subject = 'сообщение из обратной связи';
        }
        $mail->Body    = $msgHtml;
        $mail->AltBody = $msg;
        $mail->isHTML(true);
        if (!$mail->send()) {
            $arResult = array(
                "status" => false,
                "msg" => $mail->ErrorInfo,
            );
        } else {
            $arResult = array(
                "status" => true,
                "msg" => "Сообщение успешно отправлено",
            );
        }
}
header('Content-Type: application/json; charset=utf-8');
die(json_encode($arResult,JSON_UNESCAPED_UNICODE));
?>


и сама форма(которая всплывает по нажатию)

<div style="display: none;">
    <div id="popupreverse" class="popup-form">
        <div class="title">Обратная связь</div>
        <div class="body">
            <form id="rv-form" action="/libraries/sender.php" method="POST">
                <input name="title" type="hidden" value="" />
                <div class="inp-field"><label>Ваше имя</label> <input name="name" required="" type="text" placeholder="Иван Иванович" /></div>
                <div class="inp-field"><label> E-mail</label> <input name="email" required="" type="text" placeholder="ivan@mail.ru" /></div>
                <div class="inp-field"><label>Сообщение</label> <input name="comment" required="" type="text" placeholder="Ваш вопрос" /></div>
                <div class="inp-field"><button class="btn-ajax" form="rv-form" type="button">Отправить</button></div>
            </form>
        </div>
    </div>
</div>


Знаю что есть код

$ip = $_SERVER['REMOTE_ADDR'];
$message .= 'IP-адрес: '.$ip;


Куда надо добавлять их?
  • Вопрос задан
  • 262 просмотра
Решения вопроса 1
@DimaWeb
$mail->Body    = $msgHtml . "<p><b>IP: </b> {$ip}</p>";


$_SERVER['REMOTE_ADDR'] - может работать неправильно если на сервере стоит NGINX перед APACHE. В таком случае будет передаться IP адрес сервера, а не клиента.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Yan-s
Добавьте перед $mail->Body = $msgHtml;
Только переименуйте $message на то, которое у вас используется.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы