Задать вопрос

Как разделить формы?

Здравствуйте! На сайте есть формы обратной связи, одна из которых заказ обратного звонка. Обе работают через один обработчик. Как их разделить, чтобы в письмах, приходящих на почту, была указана тема, например, если отправлено из формы обратного звонка, указывалась соответствующая тема?

<?php
require_once __DIR__ . '/recaptchalib.php';
// Введите свой секретный ключ
$secret = "";
// пустой ответ каптчи
$response = null;
// Проверка вашего секретного ключа
$reCaptcha = new ReCaptcha($secret);
if ($_POST["g-recaptcha-response"]) {
$response = $reCaptcha->verifyResponse(
        $_SERVER["REMOTE_ADDR"],
        $_POST["g-recaptcha-response"]
    );
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST['uname']) && (empty($_POST['uemail']) || empty($_POST['uphone']))){
    echo '<p class="fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
  } else {
    if ($response != null && $response->success) {
    if (isset($_POST['uname'])) {
      $uname = strip_tags($_POST['uname']);
      $unameFieldset = "<b>Имя:</b>";
    }
    if (isset($_POST['uemail'])) {
      $uemail = strip_tags($_POST['uemail']);
      $uemailFieldset = "<b>Почта:</b>";
    }
    if (isset($_POST['uphone'])) {
      $uphone = strip_tags($_POST['uphone']);
      $uphoneFieldset = "<b>Телефон:</b>";
    }
 

    $to = "mail@gmail.com"; /*Укажите адрес, на который должно приходить письмо*/
    $sendfrom = ""; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $headers .= "Content-Transfer-Encoding: 8bit \r\n";
    $subject = "$formInfo";
    $message = "$unameFieldset $uname<br>
                $uemailFieldset $uemail<br>
                $uphoneFieldset $uphone<br>
                $formInfoFieldset $formInfo";

    $send = mail ($to, $subject, $message, $headers);
        if ($send == 'true') {
            echo '<p class="success">Спасибо за отправку вашего сообщения!</p>';
        } else {
          echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
        }
    } else {
      echo '<p class="success">Не пройдена каптча! Попробуйте еще раз!</p>';
    }
  }
} else {
  header ("Location: https://net.ru"); // главная страница вашего лендинга
}


<form id="thirstForm" class="form" autocomplete="off">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">×</button>
                    <h4 class="modal-title">Получить консультацию</h4>
                    <p class="after-modal-title">Оставьте свой номер телефона и наши менеджеры свяжутся с вами в ближайшее время</p>
                </div>
                <div class="modal-body">
                  <div class="form-group">
                      <input type="text" name="uname" id="username" class="form-control" placeholder="Введите имя" required>
                  </div>
                    <div class="form-group">
                        <input type="text" name="uphone" id="phone" class="form-control phone-mask" placeholder="+7 (999) 999-99-99" required>
                    </div>
                    <input name="formInfo" class="formInfo" type="hidden" value=""/>
                    <!-- DIV - в котором выводится блок с recaptcha -->
                    <div class="g-recaptcha" data-sitekey="6LcZYdgUAAAAAJbMEwPOTUjlkDcjlue-fdUYItxX" data-theme="light" style="width: max-content;margin: auto;"></div>
                    <button type="submit" name="submit" class="btn main-btn form-btn formBtn">Перезвоните мне</button>
                </div>
            </form>
  • Вопрос задан
  • 193 просмотра
Подписаться 2 Простой 3 комментария
Решения вопроса 1
coderisimo
@coderisimo
Можно сделать скрытое поле. И при обработке его проверять. И далее :

$subject = $_POST['type'] ==='call' ? "Что-то про обратный звонок" : "Что-то про обратную связь" ;
//$subject это тема будущего письма
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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