leotoleo
@leotoleo
Верстаю на html css js

Почему не отправляется форма после переноса сайта?

Я верстальщик. Появилась необходимость сделать форму с прикреплением файла. На тестовом хостинге код работает отлично, НО перенес сайт на wordpress и выдает ошибку в консоли: POST https://rf-car.ru/pokraska-avto/multisend.php 404, ошибка в строке - xhr.send(formData);

Подскажите, пожалуйста, что не так.
Вот код:
<!-- Modal window start -->
        <div id="wrapper-modal">
            <div id="overlay"></div>
            <div id="modal-window">
                <form action="#" method="post" class="modal-window__form" id="sendform" enctype="multipart/form-data">
                    <fieldset>
                        <h3 class="modal-window__title">
                            Заполните форму
                        </h3>
                        <input name="name" value="" size="40" type="text" class="required" required placeholder="Имя"
                            autocomplete="off" />
                        <input name="tel" value="" size="40" class="required" required type="tel"
                            placeholder="Номер телефона" autocomplete="off" />
                        <input name="email" value="" size="40" type="email" placeholder="E-mail" autocomplete="off" />
                        <textarea name="message" placeholder="Комментарий"></textarea>
                        <input name="file[]" value="1" size="40" type="file" multiple />
                        <input class="form__btn btnHome" value="Отправить" name="sendMail" type="submit" />
                    </fieldset>
                </form>
            </div>
        </div>
        <!-- Modal window end -->


// Как только страничка загрузилась 
  window.onload = function () { 
    // проверяем поддерживает ли браузер FormData 
    if(!window.FormData) {
      alert("Браузер не поддерживает загрузку файлов на этом сайте");
    }
  }

jQuery(document).ready(function(){
	// =validation
	var errorTxt = 'Ошибка отправки';
	jQuery("#sendform").validate({
		submitHandler: function(form){
			var form = document.forms.sendform,
				formData = new FormData(form),
				xhr = new XMLHttpRequest();
				
			xhr.open("POST", "multisend.php");
			
			xhr.onreadystatechange = function() {
				if (xhr.readyState == 4) {
					if(xhr.status == 200) {
						jQuery("#sendform").html('<p class="thank">Заявка отправлена. Мы свяжемся с Вами в ближайшее время<p>');
					}
				}
			};
			xhr.send(formData);
		}
	});	
})

function sendSuccess(callback){
	jQuery(callback).find("form fieldset").html(thank);
	startClock();
}


<?php
$to = 'okei.701@mail.ru';

if ( isset( $_POST['sendMail'] ) ) {
	$name	= substr( $_POST['name'], 0, 64 );
	$tel = substr( $_POST['tel'], 0, 64 );
	$email	 = substr( $_POST['email'], 0, 64 );
	$message = substr( $_POST['message'], 0, 250 );

if($_FILES)
{
	$filepath = array();
	$filename = array();
	$file2 = array();
	$i = 0;
		foreach ($_FILES["file"]["error"] as $key => $error) {
			if ($error == UPLOAD_ERR_OK) {
				$filename[$i][0] = $_FILES["file"]["tmp_name"][$key];
				$filename[$i][1] = $_FILES["file"]["name"][$key];
				$i++;
			}
		}
	}

	
	$body = "Имя:\r\n".$name."\r\n\r\n";
	$body .= "Контактный номер:\r\n".$tel."\r\n\r\n";
	$body .= "E-mail:\r\n".$email."\r\n\r\n";
	$body .= "Комментарий к заявке:\r\n".$message; 
	send_mail($to, $body, $email, $filename);
}




// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $body, $email, $filename)
{
	$subject = 'Заявка с сайта ("REFRESH CAR")';
	$boundary = "--".md5(uniqid(time())); // генерируем разделитель
	$headers = "From: ".$email."\r\n";	 
	$headers .= "MIME-Version: 1.0\r\n";
	$headers .="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n";
	$multipart = "--".$boundary."\r\n";
	$multipart .= "Content-type: text/plain; charset=\"utf-8\"\r\n";
	$multipart .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n";

	$body = $body."\r\n\r\n";
 
	$multipart .= $body;
	foreach ($filename as $key => $value) {
		$fp = fopen($value[0], "r"); 
		$content = fread($fp, filesize($value[0]));
		fclose($fp);
		$file .= "--".$boundary."\r\n";
		$file .= "Content-Type: application/octet-stream\r\n";
		$file .= "Content-Transfer-Encoding: base64\r\n";
		$file .= "Content-Disposition: attachment; filename=\"".$value[1]."\"\r\n\r\n";
		$file .= chunk_split(base64_encode($content))."\r\n";
	}
	$multipart .= $file."--".$boundary."--\r\n";
	mail($to, $subject, $multipart, $headers);
}
?>
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
demon416nds
@demon416nds
Разработчик на чем попало
зайди на вкладку сеть в отладчике браузера и заскринь запросы
скорее всего у тебя на сервере нет multisend.php в нужном месте
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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