Есть обработчик формы PHP: var submitRequestForm = function() { $('#bronModal').modal('hide'); $('#thxModal').modal('show'); var json = JSON.stringify({ name: $("#req_name").val(), drug: $("#req_drug").val(), phone: $("#req_phone").val(), comment: $("#req_comment").val(), site: 'Poisk apteki' }); var url = "http://search-apteki.ru/sendmail/index.php"; $.post(url, json, function(resp) { console.log(resp); } ); $.post("http://search-apteki.ru/sendmail/index.php", JSON.stringify({ name: $("#req_name").val(), phone: $("#req_phone").val(), comment: $("#req_drug").val() + ", " + $("#req_comment").val(), }), function(resp) { } ); } И есть обработчик отправленных данных PHP: <?php if(isset($_POST['name'])) { $name = $_POST['name']; $name = htmlspecialchars($name); $name = urldecode($name); $name = trim($name); $drug = $_POST['drug']; $drug = htmlspecialchars($drug); $drug = urldecode($drug); $drug = trim($drug); $phone = $_POST['phone']; $phone = htmlspecialchars($phone); $phone = urldecode($phone); $phone = trim($phone); $comment = $_POST['comment']; $comment = htmlspecialchars($comment); $comment = urldecode($comment); if (mail("123123123@ya.ru", "Заявка с сайта", "Имя:".$name." E-mail: ".$drug." Телефон:".$phone." Сообщение:".$comment."",$drug)) { echo "сообщение успешно отправлено"; //header('Refresh:3; URL=https://123123123/contacts.php'); } else { echo "при отправке сообщения возникли ошибки"; } } else header("Location: /");?> В итоге данная система в паре не работает, а обработчик на php пашет, в чём косяк?
Когда отправляешь через jaavscript данные на PHP обработчик, то какие он получает? Можно же сделать var_dump($_POST); отладка/debug http://phpfaq.ru/debug https://netbeans.org/kb/docs/php/debugging_ru.html https://php.ru/forum/threads/howto-...i-po-shagam-i-s-kartinkami.58974/#post-474550
Так, дальше, ajax запрос какие данные отправляет? Если браузер chrome то F12 потом network и нажать на запрос
Ну так сказать функция mail выполняется, т.е. js запрашивает php проверку.. Но вот не задача, поля приходят пустыми.... Т.е. по сути он отправляет данные, но пустые
У вас при заходе на страницу сразу же срабатывет header("Location: /"); Код (Text): <?php if(isset($_POST['name'])) { } else header("Location: /");?>
Дак это проверка на повторную отправку формы, а у меня Post параметр просто не получает данные из формы и js скрипта
header("Location: /"); должен быть внутри ифа а не после. Сейчас у вас получается что: если (isset($_POST['name']) { то отправляется письмо } иначе header("Location: /"); тоесть иф в котором отправка почты просто не отрабатывает.
Господи, косяк не в этом, ещё раз повторюсь, косяк в том что форма(Если напрямую) и js отправляют пустые POST запросы.... Данная php форма работает исправно! Проверялось!
array(0) { } сообщение успешно отправлено array(4) { ["req_name"]=> string(6) "123231" ["req_drug"]=> string(7) "3123123" ["req_phone"]=> string(3) "312" ["req_comment"]=> string(6) "123123" } сообщение успешно отправлено Данные приходят, только вот не отправляются на почту Код (Text): <?php //if(isset($_POST['name'])) //{ /*$name = $_POST['name']; $name = htmlspecialchars($_POST['name']); $name = urldecode($name); $name = trim($name); $drug = $_POST['drug']; $drug = htmlspecialchars($drug); $drug = urldecode($drug); $drug = trim($drug); $phone = $_POST['phone']; $phone = htmlspecialchars($phone); $phone = urldecode($phone); $phone = trim($phone); $comment = $_POST['comment']; $comment = htmlspecialchars($comment); $comment = urldecode($comment);*/ error_reporting ( E_ALL ); var_dump ( $_POST ); if (mail("mrfierro@ya.ru", "Заявка с сайта", "Имя:".$_POST['req_name']." E-mail: ".$_POST['req_drug']." Телефон:".$_POST['req_phone']." Сообщение:".$_POST['req_comment']."","mrfierro@ya.ru")) { echo "сообщение успешно отправлено"; //header('Refresh:3; URL=https://cental.su/contacts.php'); } else { echo "при отправке сообщения возникли ошибки"; } //} else header("Location: /");?>
Нашёл ошибку, но не нашёл именно где... php файл получает POST данные, как говорит консоль... А вот на почту приходят пустые