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

Почему из формы обратной связи не приходят сообщения при заполнении с телефона?

Ранее задавал вопрос по этой теме. Вопрос был решен. Заявки стали приходить. НО, только заполненные с компьютера. Если с мобильного телефона заполнять, то не приходят. В чем может быть проблема?

<?php

$method = $_SERVER['REQUEST_METHOD'];

// Initialize variables with empty values
$project_name = "";
$admin_email = "";
$form_subject = "";
$message = "";

if ($method === 'POST') {
    // Process POST request
    $project_name = isset($_POST["project_name"]) ? trim($_POST["project_name"]) : "";
    $admin_email = isset($_POST["admin_email"]) ? trim($_POST["admin_email"]) : "";
    $form_subject = isset($_POST["form_subject"]) ? trim($_POST["form_subject"]) : "";

    // Prepare message content
    $message = "Приём! У нас новая заявка!   ";
    $c = true; // For alternating row colors

    foreach ($_POST as $key => $value) {
        if ($value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject") {
            $message .= "$value.     ";
        }
    }

    $message .= "   Конец связи!";
} elseif ($method === 'GET') {
    // Process GET request
    $project_name = isset($_GET["project_name"]) ? trim($_GET["project_name"]) : "";
    $admin_email = isset($_GET["admin_email"]) ? trim($_GET["admin_email"]) : "";
    $form_subject = isset($_GET["form_subject"]) ? trim($_GET["form_subject"]) : "";

    // Prepare message content
    $message = "<html><body><table style='width: 100%; border-collapse: collapse;'>";
    $c = true; // For alternating row colors

    foreach ($_GET as $key => $value) {
        if ($value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject") {
            $message .= "
                $value
            ";
        }
    }

    $message .= "</table></body></html>";
}

// Function to adopt text for email headers
function adopt($text) {
    return '=?UTF-8?B?' . base64_encode($text) . '?=';
}

// Validate and adopt project name and admin email for headers
$project_name_header = $project_name ? adopt($project_name) : "No Name";
$admin_email_header = $admin_email ? $admin_email : "no-reply@example.com";

// Email headers
$headers = "MIME-Version: 1.0" . PHP_EOL .
    "Content-type: text/html; charset=UTF-8" . PHP_EOL .
    'From: ' . $project_name_header . ' <' . $admin_email_header . '>' . PHP_EOL .
    'Reply-To: ' . $admin_email_header . '' . PHP_EOL .
    "X-Mailer: PHP/" . phpversion();

// Send email
if (mail($admin_email, adopt($form_subject), $message, $headers)) {
    echo 'Письмо успешно отправлено.';
} else {
    echo 'Ошибка отправки письма.';
}

?>


$(document).ready(function() {
  $("form").submit(function(event) { 
    event.preventDefault(); 
    var th = $(this);
    $.ajax({
      type: "POST",
      url: "/mail.php",
      data: th.serialize()
    }).done(function(response) {
      alert("Спасибо! Мы с Вами свяжемся");
      console.log("Response: ", response); // Debugging output
      setTimeout(function() {
        th.trigger("reset");
      }, 1000);
    }).fail(function(jqXHR, textStatus, errorThrown) {
      alert("Ошибка при отправке сообщения");
      console.log("Error: ", textStatus, errorThrown); // Debugging output
    });
  });
});


<form>
        <!-- Hidden Required Fields -->
        <input type="hidden" name="project_name" value="ImproStore">
        <input type="hidden" name="admin_email" value="samarov_dubskoe@mail.ru">
        <input type="hidden" name="form_subject" value="Form Subject">
        <!-- END Hidden Required Fields -->
        <input class="okno" type="text" name="Name" placeholder="Как Вас зовут?" required><br>
        <input class="okno" type="text" name="E-mail" placeholder="Ваша почта" required><br>
        <input class="okno" type="text" name="Phone" placeholder="Ваш номер телефона"><br>
        <button class="okno-btn">Отправить</button>
    </form>
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ответы на вопрос 1
r3n0
@r3n0
// _ AppSec // Bug Bounty / Legal Hacking
Привет.

В чем может быть проблема?

Делаю ставку на то, что неправильно формируются заголовки, особенно вот в этом месте:
'From: ' . $project_name_header . ' <' . $admin_email_header . '>' . PHP_EOL .

Код, который ты используешь: а) избыточен и сомнителен относительно такой простой задачи, которую ты решаешь; б) использовать mail( ) для отправки сообщений допустимо разве что в безвыходной ситуации, когда иных вариантов нет.

Чем себе помочь, если принципиально важно использовать mail( ): а) смотри как формируются по итогу заголовки и проверь логи ошибок PHP; б) найди другой мейлер, коих сейчас написано в избытке.

Чем себе помочь, если не принципиально использование mail( ): рассмотри PHPMailer как альтернативное решение твоей задачи, и включи в нём дебаг, чтобы отладить все нужные процессы.
Ответ написан
Ваш ответ на вопрос

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

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