Столкнулся с проблемой, что никак не хочет приходить письмо с формы с файлом.
Приходит без файла.
вот сама форма
<form action="#" class="ordinary_form1" enctype="multipart/form-data">
<div class="nameContainer">
<input type="hidden" name="whatisit" value="Расчет стоимость повреждения">
<input id="i1" type="text" placeholder="Ваше имя" name="name">
<input id="i2" type="tel" placeholder="Телефон" name="phone">
</div>
<div class="problemContainer">
<textarea id="elm1" placeholder="Пожалуйста, опишите Вашу проблему. Чем детальнее описание, тем точне предварительная цена"></textarea>
<div class="sendContainer">
<div >
<input type="file" accept=".png, .jpg, .gif" name="file" id="file" class="input-file" >
<label for="file" class="btn btn-tertiary js-labelFile">
<div class="transformInput">
<span class="js-fileName">Прикрепить фото</span>
<img src="./img/priceOnline/screpca.svg" alt="#">
</div>
</label>
</div>
<div class="fileChange">
<div class="fileFalse">
Файл не выбран...
</div>
<div class="fileTrue">
Вы выбрали файл
</div>
</div>
</div>
</div>
<p>Нажимая кнопку «Отправить»,
Вы соглашаетесь c условиями
<a href="#disclaimer">Политики конфиденциальности</a>
</p>
<button class="sendBtn" type="submit"> Отправить<div class="arrow">
<img src="./img/slider/arrowNext.svg" alt="#">
</div>
</button>
</form>
вот скрипт отправки на обработчик
$("body").on("submit", ".ordinary_form1", function (e) {
e.preventDefault();
var checkphone = pleaseCheckPhone(this, 'input[name="phone"]');
if (checkphone === false)
return false;
var name = $(this).find('input[name="name"]').val();
var phone = $(this).find('input[name="phone"]').val();
var area = $("#elm1").val();
var file =$('#file').val();
$.ajax({
type: "POST",
url: "/script.php",
data: {
i2: phone,
i1: name,
i3: area,
i5: file,
whatisit: $(this).find('input[name="whatisit"]').val(),
},
success: function (msg) {
console.log("OK");
},
error: function (msg2) {
console.log(msg2);
},
timeout: 10000
});
$('.priceOnline').html(' <div class="btnContainer" > <img data-bs-dismiss="modal" src="./img/modal/cross.svg" alt="#"> </div> <p class="thank-you" style="color: aliceblue"><strong>Спасибо!</strong><br><br>Ваша заявка получена и мы свяжемся с Вами в ближайшее время!</p>');
});
и обработчик
<?php
$HTTP_HOST = $_SERVER["HTTP_HOST"];
//$name = filter_input(INPUT_POST, 'i2', FILTER_SANITIZE_STRING);
//$tel = filter_input(INPUT_POST, 'i1', FILTER_SANITIZE_NUMBER_FLOAT);
$name=$_POST["i1"];
$tel =$_POST["i2"];
$as=$_POST["i3"];
$qwe=$_FILES["i5"];
$messag = "Письмо об обратном звонке с сайта " . $HTTP_HOST . "\n";
$messag = $messag . "-------------------------------------- \n\n";
$messag = $messag . "Форма: " . substr(htmlspecialchars($_POST["whatisit"]), 0, 62) . "\n";
$messag = $messag . "Имя: " . substr(htmlspecialchars($_POST["i1"]), 0, 62) . "\n";
$messag = $messag . "Телефон: " . substr(htmlspecialchars($_POST["i2"]), 0, 62) . "\n";
$messag = $messag . "Проблема: " . substr(htmlspecialchars($_POST["i3"]), 0, 62) . "\n";
$messag = $messag . "Файл: " . substr(htmlspecialchars($_FILES["i5"]['tmp_name'], $_FILES['i5']['name']), 0, 62) . "\n";
$messag = $messag . "-------------------------------------- \n\n";
$messag = $messag . "Дата: " . date("d.m.Y h:i") . "\n";
$messag = $messag . "IP: " . htmlspecialchars($_SERVER['REMOTE_ADDR']);
$body = $messag;
if (mail("seregadixi@mail.ru", "Письмо об обратном звонке с сайта " . $HTTP_HOST , $body, "From: i@webriz.ru\r\n"))
{
echo "Спасибо. Ваша заявка отправлена. В ближайшее время с вами свяжется наш менеджер";
} else {
echo "при отправке сообщения возникли ошибки";
}
Нормального примера как реализовать отправку через mail не нашел и потому сам понимаю что мой вариан кривой а вот как правильно его сделать никак не могу.
Может кто знает как это сделать?