-
Posts
14 -
Joined
-
Last visited
About it-seo77
- Birthday 12/13/1983
Information
-
Sex
мужской
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
it-seo77's Achievements
Explorer (1/14)
0
Reputation
-
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
Реально не понятно каким образом сделать отправку по ajax?Можешь конкретно подсказать как этот запрос правильно сформировать. Реально соображал бы я, не задавал бы такие вопросы.Куда залить данный запрос, в какой файл? -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
А чем пример в предыдущем моём сообщении не устраивает? Данный код мы куда заливаем?В файл mail.php после обработки данных? -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
Как правильно отправить данный запрос?В какой файл закатать данную функцию? -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
Извиняюсь, вообще не знал как вызывается подобная функция. Залил в файл обработчик mail.php следующий код: <?php echo "<pre>"; var_dump ($_REQUEST); echo "<pre>"; ?> Ответ через запрос: http://site.ru/php/mail.php Выдал ответ: array(12) { ["_ym_uid"]=> string(19) "1481970163743581687" ["jv_enter_ts_DCNb0JGhkq"]=> string(13) "1481970164246" ["jv_visits_count_DCNb0JGhkq"]=> string(1) "1" ["jv_close_time_DCNb0JGhkq"]=> string(13) "1481980481861" ["jv_pages_count_DCNb0JGhkq"]=> string(2) "23" ["__d1e946f4e67db4980b2e71a1"]=> string(2) "{}" ["__leadback_guid_d1e946f4e67db4980b2e71a1"]=> string(92) "{"guid":"83436535-1acd-43b1-aec2-f3b8315b8595","converted":false,"t":3676,"l":1482016658876}" ["__d83de59e102270c5aa65949d"]=> string(2) "{}" ["_ym_isad"]=> string(1) "2" ["__leadback_guid_d83de59e102270c5aa65949d"]=> string(94) "{"guid":"d96b0737-66ac-422e-b7cd-ff644f13e484","converted":false,"t":138728,"l":1482479852233}" ["_ga"]=> string(27) "GA1.2.1116388961.1482012889" ["__leadback_d83de59e102270c5aa65949d"]=> string(386) "{"widget_key":"d83de59e102270c5aa65949d","user_id":"8014","active":true,"night_mode":true,"catch_on_exit":true,"catch_by_timer":false,"catch_by_timer_time":30,"allow_multiple_conversions":false,"timeout":1440,"callback_time":27,"float_button":true,"mobile_button":true,"country":"ru","lang":"ru-ru","position":"bottom:50px; right:50px;","chat":"0","chat_uid":0,"chat_id":0,"status":"1"}" } Убрал данные значения. Отредактировал форму: <?php $recepient = "online@yandex.ru"; $pagetitle = "Новая заявка с сайта \"$sitename\""; if (isset($_POST['notEmpty'])) {$name = $_POST['notEmpty'];} if (isset($_POST['notEmpty2'])) {$name = $_POST['notEmpty2'];} if (isset($_POST['notEmpty3'])) {$name = $_POST['notEmpty3'];} if (isset($_POST['notEmpty4'])) {$name = $_POST['notEmpty4'];} if (isset($_POST['phone'])) {$phone = $_POST['phone'];} $message = "Имя отправителя: $notEmpty \nМарка авто: $notEmpty2 \nМодель авто: $notEmpty3 \nГод выпуска: $notEmpty4 \nТелефон: $phone"; $send = mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $recepient"); ?> Данный файл modal-service1.html который располагается в корне сайта, вызывает выплывающую форму обратной связи. На сайте три формы обратной связи, одна располагается на странице, две другие формы выплывают при нажатии на кнопки Оставить заявку и Заявка на выкуп авто онлайн. Вот первая форма index.php <h4>Заявка на выкуп авто онлайн</h4> <p></p> </div> <div class="form-content"> <div class="form-group"> <input type="text" name="notEmpty" class="form-control name" placeholder="Ваше имя"> </div> <div class="form-group"> <input type="text" name="notEmpty2" class="form-control name" placeholder="Марка авто"> </div> <div class="form-group"> <input type="text" name="notEmpty3" class="form-control name" placeholder="Модель авто"> </div> <div class="form-group"> <input type="text" name="notEmpty4" class="form-control name" placeholder="Год выпуска"> </div> <div class="form-group"> <input type="text" name="phone" class="form-control required phone" placeholder="Ваш телефон *"> </div> <a href="#" class="submit btn btn-success"> Отправить заявку </a> </div> </form> С неё так же как и с двух других форм обратной связи приходят пустые сообщения: Имя отправителя: Марка авто: Модель авто: Год выпуска: Телефон: -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
Дело в том, что впервые столкнулся с Ajax формой обратной связи и с данной формой обработки. Реально может непонятно спрашиваю, попробую детально уточнить.4 дня бился как об стенку, удалось только получить возможность принимать пустое сообщение. Оказалось что проблема была с хостингом, который молчал 2-ое суток сбил меня полностью с панталогии, с грехом пополам решили вопрос отправки. Реально хочу понять где я ошибся. Немного внёс коррективы, но дальше не могу пробиться. Как только не делал обработчик, всё бесполезно. Теоретически знающий может сказать, а вот реальную ошибку не увидит. Большая просьба помочь с выявлением ошибки. На сайте представлены 3-и формы заявки. Вот index.php форма первая заявки <h4>Заявка на выкуп авто онлайн</h4> <p></p> </div> <div class="form-content"> <div class="form-group"> <input type="text" name="notEmpty" class="form-control name" placeholder="Ваше имя"> </div> <div class="form-group"> <input type="text" name="notEmpty2" class="form-control name" placeholder="Марка авто"> </div> <div class="form-group"> <input type="text" name="notEmpty3" class="form-control name" placeholder="Модель авто"> </div> <div class="form-group"> <input type="text" name="notEmpty4" class="form-control name" placeholder="Год выпуска"> </div> <div class="form-group"> <input type="text" name="phone" class="form-control required phone" placeholder="Ваш телефон *"> </div> <a href="#" class="submit btn btn-success"> Отправить заявку </a> </div> </form> Другая форма заявки в этом же index.php <div class="buy-one-click"> <div class="container"> <div class="section-title"> <h3>Продайте свой автомобиль всего за 1 клик!</h3> </div> <a href="modal-service1.html" class="ajax-popup-link btn btn-success" style="text-transform: none; padding: 20px 20px 20px 40px; width:300px; margin:10px auto 0; display:block; line-height: 0.8;position:relative; font-size:22px;"><img src="img/arrow-right.png" style="position:absolute; top:21px;left:53px;">Оставить заявку</a> </div> И третья форма заявки в этом же index.php <a href="modal-callback.html" class="footer-contacts-callback ajax-popup-link"> Заявка на выкуп авто онлайн </a> файл modal-callback.html <div class="white-popup mfp-with-anim"> <form data-type="Продайте свой автомобиль всего за 1 клик!" data-target="podborCallback" class="form"> <div class="form-heading"> <h4>Оставить заявку</h4> <p> Заполните заявку и мы <br> перезвоним Вам в течение 20 минут. </p> </div> <div class="form-content"> <div class="form-group"> <input type="text" name="notEmpty" class="form-control name" placeholder="Ваше имя"> </div> <div class="form-group"> <input type="text" name="notEmpty2" class="form-control name" placeholder="Марка авто"> </div> <div class="form-group"> <input type="text" name="notEmpty3" class="form-control name" placeholder="Модель авто"> </div> <div class="form-group"> <input type="text" name="notEmpty4" class="form-control name" placeholder="Год выпуска"> </div> <div class="form-group"> <input type="text" name="phone" class="form-control required phone" placeholder="Ваш телефон *"> </div> <a href="#" class="submit btn btn-success"> Отправить заявку </a> </div> </form> </div> и modal-service1.html <div class="white-popup mfp-with-anim"> <form data-type="Продайте свой автомобиль всего за 1 клик!" data-target="podborService1" class="form"> <div class="form-heading"> <h4>Оставить заявку</h4> <p> Заполните заявку и мы <br> перезвоним Вам в течение 20 минут. </p> </div> <div class="form-content"> <div class="form-group"> <input type="text" name="notEmpty" class="form-control name" placeholder="Ваше имя"> </div> <div class="form-group"> <input type="text" name="notEmpty2" class="form-control name" placeholder="Марка авто"> </div> <div class="form-group"> <input type="text" name="notEmpty3" class="form-control name" placeholder="Модель авто"> </div> <div class="form-group"> <input type="text" name="notEmpty4" class="form-control name" placeholder="Год выпуска"> </div> <div class="form-group"> <input type="text" name="phone" class="form-control required phone" placeholder="Ваш телефон *"> </div> <a href="#" class="submit btn btn-success"> Отправить заявку </a> </div> </form> </div> Файл script.js /*! jQuery JSON plugin v2.5.1 | github.com/Krinkle/jquery-json */ !function($){"use strict";var escape=/["\\\x00-\x1f\x7f-\x9f]/g,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},hasOwn=Object.prototype.hasOwnProperty;$.toJSON="object"==typeof JSON&&JSON.stringify?JSON.stringify:function(a){if(null===a)return"null";var b,c,d,e,f=$.type(a);if("undefined"===f)return void 0;if("number"===f||"boolean"===f)return String(a);if("string"===f)return $.quoteString(a);if("function"==typeof a.toJSON)return $.toJSON(a.toJSON());if("date"===f){var g=a.getUTCMonth()+1,h=a.getUTCDate(),i=a.getUTCFullYear(),j=a.getUTCHours(),k=a.getUTCMinutes(),l=a.getUTCSeconds(),m=a.getUTCMilliseconds();return 10>g&&(g="0"+g),10>h&&(h="0"+h),10>j&&(j="0"+j),10>k&&(k="0"+k),10>l&&(l="0"+l),100>m&&(m="0"+m),10>m&&(m="0"+m),'"'+i+"-"+g+"-"+h+"T"+j+":"+k+":"+l+"."+m+'Z"'}if(b=[],$.isArray(a)){for(c=0;c<a.length;c++)b.push($.toJSON(a[c])||"null");return"["+b.join(",")+"]"}if("object"==typeof a){for(c in a)if(hasOwn.call(a,c)){if(f=typeof c,"number"===f)d='"'+c+'"';else{if("string"!==f)continue;d=$.quoteString(c)}f=typeof a[c],"function"!==f&&"undefined"!==f&&(e=$.toJSON(a[c]),b.push(d+":"+e))}return"{"+b.join(",")+"}"}},$.evalJSON="object"==typeof JSON&&JSON.parse?JSON.parse:function(str){return eval("("+str+")")},$.secureEvalJSON="object"==typeof JSON&&JSON.parse?JSON.parse:function(str){var filtered=str.replace(/\\["\\\/bfnrtu]/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"");if(/^[\],:{}\s]*$/.test(filtered))return eval("("+str+")");throw new SyntaxError("Error parsing JSON, source is not valid.")},$.quoteString=function(a){return a.match(escape)?'"'+a.replace(escape,function(a){var b=meta[a];return"string"==typeof b?b:(b=a.charCodeAt(),"\\u00"+Math.floor(b/16).toString(16)+(b%16).toString(16))})+'"':'"'+a+'"'}}(jQuery); $(document).ready(function(){ //определяем тип устройства и вешаем класс на body if(!isMobile.any()){ $('body').addClass('device-desktop'); }else { $('body').addClass('device-mobile'); } //Плавное перемещение к якорю $('a.goto').on("click touchstart", function() { if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); if (target.length) { $('html,body').animate({ scrollTop: target.offset().top-35 }, 1000); return false; } } }); /*popups*/ $('.image-popup-link').magnificPopup({ type: 'image' }); $('.popup-gallery').magnificPopup({ delegate: 'a', type: 'image', tLoading: 'Загружается изображение #%curr%...', mainClass: 'mfp-img-mobile', gallery: { enabled: true, navigateByImgClick: true, preload: [0,1] // Will preload 0 - before current, and 1 after the current image }, image: { tError: '<a href="%url%">Изображение #%curr%</a> не может быть загружено.', } }); $('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({ disableOn: 700, type: 'iframe', mainClass: 'mfp-fade', removalDelay: 500, preloader: false, fixedContentPos: false }); /*tooltips*/ $('.js-car-item').each(function(){ var titleHeight = $(this).find('.header-car-item-title').outerHeight(); var contentHeight = $(this).find('.header-car-item-content').outerHeight(); $(this).find('.header-car-item-content').css({ 'top': -(contentHeight+12)+'px' }); }); $('.details-list-item').each(function(){ var contentHeight = $(this).find('.details-list-item-tooltip').outerHeight(); $(this).find('.details-list-item-tooltip').css({ 'top': -(contentHeight+12)+'px' }); }); /*select*/ $(".js-select").select2(); /*sliders*/ $('.js-reviews-slider').bxSlider({ pager: true, }); $('.js-reviews-slider2').bxSlider({ pager: true, slideWidth: 530, adaptiveHeight: true }); $('.js-marks-slider').bxSlider({ pager: false, minSlides: 6, maxSlides: 6, moveSlides: 1, auto: true, pause:2000, slideWidth: 170, onSliderLoad: function() { $('.js-marks-slider li .mark-item').matchHeight(); } }); /*$(function() { $('.reason-item').matchHeight(''); });*/ /*js show*/ $('.js-show').on('click', function(e) { e.preventDefault(); var showTarget = $(this).data('show'); $(this).hide(); $(showTarget).show(300); }); $(window).load(function(){ var data = $('.s-map').attr('path'); setTimeout(function(){ $('.s-map').load('./'+data); },100); }); $('.goup').on('click', function(){ if ($(this).hasClass('top')) { $(this).removeClass('top'); $(this).find('span').text('Наверх'); $(this).find('i').addClass('fa-caret-up'); $(this).find('i').removeClass('fa-caret-down'); var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); if (target.length) { $('html,body').animate({ scrollTop: scrollPosition }, 1000); return false; } } else { $(this).addClass('top'); $(this).find('span').text(''); $(this).find('i').removeClass('fa-caret-up'); $(this).find('i').addClass('fa-caret-down'); scrollPosition = $(window).scrollTop(); var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); if (target.length) { $('html,body').animate({ scrollTop: target.offset().top }, 1000); return false; } } }); /*calc cars*/ file = './models-json.json'; $.ajax({ url: file, //force to handle it as text cashe: true, dataType: "text", success: function(data) { //data downloaded so we call parseJSON function //and pass downloaded data var json = $.parseJSON(data); //now json variable contains data in json format //let's display a few items /*$('#results').html('Plugin name: ' + json.name + '<br />Author: ' + json.author.name);*/ $.each(json, function(key, val) { $('.select-car-mark').append('<option value="'+val.optionValue+'">'+val.optionTitle+'</option>'); }); } }); $('.select-car-mark').on('change', function() { thisValue = $(this).val(); if (thisValue != "" && thisValue != "Другое") { $('.select-car-model').prop({ disabled: false, }); $.ajax({ url: file, //force to handle it as text cashe: true, dataType: "text", success: function(data) { //data downloaded so we call parseJSON function //and pass downloaded data var json = $.parseJSON(data); //now json variable contains data in json format //let's display a few items /*$('#results').html('Plugin name: ' + json.name + '<br />Author: ' + json.author.name);*/ $.each(json, function(key, val) { if (val.optionValue == thisValue) { var modelsData = val.models; $('.select-car-model').val('Модель'); $('.select-car-model + .select2').find('.select2-selection__rendered').text('Модель'); $('.select-car-model').html('<option value="">Модель</option><option value="Другое">Другое</option>'); $.each(modelsData, function(key2, val2) { $('.select-car-model').append('<option value="'+val2.optionValue+'">'+val2.optionTitle+'</option>'); }); } }); } }); }else { $('.select-car-model').prop({ disabled: true, }); } }); /*$('.s-reviews2').resizecrop({ width:283, height:273, vertical:"center" });*/ }); /* * Обработка формы */ $(document).ready(function(){ var magnificPopup = $.magnificPopup.instance; $('.ajax-popup-link').magnificPopup({ type: 'ajax', removalDelay: 500, ajax: { settings: null, cursor: 'mfp-ajax-cur', tError: '<a href="%url%">Контент</a> не может быть загружен.' }, callbacks: { beforeOpen: function() { this.st.mainClass = 'mfp-zoom-in'; }, parseAjax: function() { setTimeout(function() { console.log('After open'); $('input.phone').inputmask({ mask: '+7 (999) 999 99 99', showMaskOnHover: false, showMaskOnFocus: true, }); $('input, textarea').placeholder(); }, 100); } }, midClick: true }); //parsing utm var $_GET = {}; document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () { function decode(s) { return decodeURIComponent(s.split("+").join(" ")); } $_GET[decode(arguments[1])] = decode(arguments[2]); }); $('input.phone').inputmask({ mask: '+7 (999) 999 99 99', showMaskOnHover: false, showMaskOnFocus: true, }); $('input, textarea').placeholder(); //Функция проверки на валидность function validate(field, type) { var pp = ''; if(type == 'email'){ var pp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; } //если подключен плагин maskedinput if(type == 'phone'){ var pp = /^\+?[\d()\-\s]*\d+\s*$/; } //если нет маски /*if(type == 'phone'){ var pp = /^((8|\+7|3|\+3)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,20}$/; }*/ if(type == 'onlyNumber'){ var pp = /^([0-9()\/+ -]+)$/; } if(type == 'notEmpty'){ var pp = /^[A-Za-zА-Яа-я0-9 _]*[A-Za-zА-Яа-я0-9][A-Za-zА-Яа-я0-9 _#()$@8%№;'":,.?!#*-]*$/; } //Проверка поля по выбранному типу if(!field.match(pp)){ return false; } return true; } //количество обязательных полей var required; //количество полей прощедших валидацию var validated; //тип формы var formtype = ''; //проверяем валидность при изменение текста в инпутах $('body').on('input', '.required',function(){ var fieldType = $(this).attr('name'); if(!validate($(this).val(), fieldType)) { $(this).parents('.form-group').removeClass('has-success').addClass('has-error'); } else { $(this).parents('.form-group').removeClass('has-error').addClass('has-success'); } //количество объязатеных полей required = $(this).parents('form').find('.required').length; //количество полей прошедших валидацию validated = $(this).parents('form').find('.has-success').length; if (required == validated){ $(this).parents('form').find('.error-msg').hide(); } }); $('input.required').bind('textchange', function (event, previousText) { var fieldType = $(this).attr('name'); if(!validate($(this).val(), fieldType)) { $(this).parents('.form-group').removeClass('has-success').addClass('has-error'); } else { $(this).parents('.form-group').removeClass('has-error').addClass('has-success'); } //количество объязатеных полей required = $(this).parents('form').find('.required').length; //количество полей прошедших валидацию validated = $(this).parents('form').find('.has-success').length; if (required == validated){ $(this).parents('form').find('.error-msg').hide(); } }); //проверяем валидность когда нажимается конпка $('body').on('click', '.submit',function(e){ e.preventDefault(); var $thisBtn = $(this); //запоминаем тип формы formtype = $(this).parents('form').data('type'); //проверяем обязательные поля на валидность $(this).parents('form').find('.required').each(function(){ var fieldType = $(this).attr('name'); if(!validate($(this).val(), fieldType)) { $(this).parents('.form-group').removeClass('has-success').addClass('has-error'); } else { $(this).parents('.form-group').removeClass('has-error').addClass('has-success'); } }); //количество обязательных полей required = $(this).parents('form').find('.required').length; //количество полей прошедших валидацию validated = $(this).parents('form').find('.has-success').length; //если нет ошибок if (required == validated){ var formData = {}; formData.username = $(this).parents('form').find('.name').val(); formData.phone = $(this).parents('form').find('.phone').val(); formData.email = $(this).parents('form').find('.email').val(); formData.message = $(this).parents('form').find('.message').val(); formData.comments = $(this).parents('form').find('.comments').val(); formData.carMarkUser = $(this).parents('form').find('.carMarkUser').val(); formData.formtype = formtype; formData.file = $(this).parents('form').find('.file-link').html(); formData.carMark = $(this).parents('form').find('.select-car-mark').val(); formData.carModel = $(this).parents('form').find('.select-car-model').val(); formData.carYear = $(this).parents('form').find('.select-car-year').val(); //utm $('.utm_campaign').text($_GET["utm_campaign"]); if ($_GET["utm_campaign"] != undefined) { formData.utmCampaign = $_GET["utm_campaign"] } $('.utm_term').text($_GET["utm_term"]); if ($_GET["utm_term"] != undefined) { formData.utmTerm = $_GET["utm_term"] } $('.utm_source').text($_GET["utm_source"]); if ($_GET["utm_source"] != undefined) { formData.utmSource = $_GET["utm_source"] } $('.utm_medium').text($_GET["utm_medium"]); if ($_GET["utm_medium"] != undefined) { formData.utmMedium = $_GET["utm_medium"] } //идентификатор цели метрики var yaTarget = $(this).parents('form').data('target'); //чистим форму function clearForm () { $(this).removeClass('valid-for-file-upload'); $('input:not(":checkbox"), textarea, select').val(''); $('.form-group').removeClass('has-success').removeClass('has-error'); formtype = ''; }; $thisText = $(this).text(); $thisBtn.addClass('disabled').text('Отправка...') $.ajax({ //отправляем аяксом url:'php/mail.php', type:'POST', data:'jsonData=' + $.toJSON(formData), success: function() { $('.submit-form-loading').fadeOut(); $('.submit-form-error').fadeOut(); magnificPopup.close(); setTimeout(function() { $('.thank-you-btn').magnificPopup({ type: 'ajax', removalDelay: 500, ajax: { settings: null, cursor: 'mfp-ajax-cur', tError: '<a href="%url%">Контент</a> не может быть загружен.', }, callbacks: { beforeOpen: function() { this.st.mainClass = 'mfp-zoom-in'; }, }, midClick: true }).magnificPopup('open'); }, 501); $thisBtn.removeClass('disabled').text($thisText); clearForm (); reachGoalFunc(yaTarget); reachGoalFunc(obwee_koli4estvo); }, error: function() { alert('При отправке данных произошла ошибка, попробуйте снова.'); $thisBtn.removeClass('disabled').text($thisText); clearForm (); } }); } }); }); Вот на текущий момент файл mail.php <?php $recepient = "online@yandex.ru"; $pagetitle = "Новая заявка с сайта \"$sitename\""; if (isset($_POST['notEmpty'])) {$name = $_POST['notEmpty'];} if (isset($_POST['notEmpty2'])) {$name = $_POST['notEmpty2'];} if (isset($_POST['notEmpty3'])) {$name = $_POST['notEmpty3'];} if (isset($_POST['notEmpty4'])) {$name = $_POST['notEmpty4'];} if (isset($_POST['phone'])) {$phone = $_POST['phone'];} $message = "Имя отправителя: $notEmpty \nМарка авто: $notEmpty2 \nМодель авто: $notEmpty3 \nГод выпуска: $notEmpty4 \nТелефон: $phone"; $send = mail($recepient, $pagetitle, $message, "Content-type: text/plain; charset=\"utf-8\"\n From: $recepient"); ?> Приходит следующее содержание сообщения на почту: Имя отправителя: Марка авто: Модель авто: Год выпуска: Телефон: Уважаемые мастера, подскажите пожалуйста, почему письма приходят пустые? Что я не так сделал? -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
Как всегда чувствовал, что тут ловить нечего, зря только время потерял, никакой помощи не жди, одна лишь критика, набор кармы, мерзость и всё. Спасибо вам всем! -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
<?php if (isset($_POST['notEmpty'])) {$name = $_POST['notEmpty'];} if (isset($_POST['phone'])) {$phone = $_POST['phone'];} if (isset($_POST['formData'])) {$formData = $_POST['formData'];} $to = "online@yandex.ru"; /*Укажите адрес, на который должно приходить письмо*/ $sendfrom = "online@yandex.ru"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/ $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"; $subject = "=?UTF-8?B?".base64_encode($subject)."?="; $message = "$formData<br> <b>Имя отправителя:</b> $name <br><b>Телефон:</b> $phone<br>"; $send = mail ($to, $subject, $message, $headers); ?> Вставил так код приходит только следующее пустое значение, где нет отображения имени отправителя и номер телефона. Имя отправителя: Телефон: -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
Всё равно не понятно как правильно настроить файл mail.php -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
Можете пример показать, в каком месте правильно всё это выставляется? -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
<?php if (isset($_POST['notEmpty'])) {$name = $_POST['notEmpty'];} if (isset($_POST['phone'])) {$phone = $_POST['phone'];} if (isset($_POST['formData'])) {$formData = $_POST['formData'];} $from_user = "=?UTF-8?B?".base64_encode($from_user)."?="; $subject = "=?UTF-8?B?".base64_encode($subject)."?="; $to = "online@yandex.ru"; /*Укажите адрес, га который должно приходить письмо*/ $sendfrom = "online@yandex.ru"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/ $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"; $subject = "Новая заявка"; $message = "$formData<br> <b>Имя пославшего:</b> $name <br><b>Телефон:</b> $phone<br>"; $send = mail ($to, $subject, $message, $headers); ?> Файлы в UTF-8 -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
Прописал, всё равно не доходят письма. Может всё так и ошибка в содержимом mail.php?Если используется jsonData , как тогда правильно сформировать этот mail.php? -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
Где необходимо прописать данные значения? В mail.php? -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 replied to it-seo77's question in JavaScript
Пардон /*! jQuery JSON plugin v2.5.1 | github.com/Krinkle/jquery-json */ !function($){"use strict";var escape=/["\\\x00-\x1f\x7f-\x9f]/g,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},hasOwn=Object.prototype.hasOwnProperty;$.toJSON="object"==typeof JSON&&JSON.stringify?JSON.stringify:function(a){if(null===a)return"null";var b,c,d,e,f=$.type(a);if("undefined"===f)return void 0;if("number"===f||"boolean"===f)return String(a);if("string"===f)return $.quoteString(a);if("function"==typeof a.toJSON)return $.toJSON(a.toJSON());if("date"===f){var g=a.getUTCMonth()+1,h=a.getUTCDate(),i=a.getUTCFullYear(),j=a.getUTCHours(),k=a.getUTCMinutes(),l=a.getUTCSeconds(),m=a.getUTCMilliseconds();return 10>g&&(g="0"+g),10>h&&(h="0"+h),10>j&&(j="0"+j),10>k&&(k="0"+k),10>l&&(l="0"+l),100>m&&(m="0"+m),10>m&&(m="0"+m),'"'+i+"-"+g+"-"+h+"T"+j+":"+k+":"+l+"."+m+'Z"'}if(b=[],$.isArray(a)){for(c=0;c<a.length;c++)b.push($.toJSON(a[c])||"null");return"["+b.join(",")+"]"}if("object"==typeof a){for(c in a)if(hasOwn.call(a,c)){if(f=typeof c,"number"===f)d='"'+c+'"';else{if("string"!==f)continue;d=$.quoteString(c)}f=typeof a[c],"function"!==f&&"undefined"!==f&&(e=$.toJSON(a[c]),b.push(d+":"+e))}return"{"+b.join(",")+"}"}},$.evalJSON="object"==typeof JSON&&JSON.parse?JSON.parse:function(str){return eval("("+str+")")},$.secureEvalJSON="object"==typeof JSON&&JSON.parse?JSON.parse:function(str){var filtered=str.replace(/\\["\\\/bfnrtu]/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"");if(/^[\],:{}\s]*$/.test(filtered))return eval("("+str+")");throw new SyntaxError("Error parsing JSON, source is not valid.")},$.quoteString=function(a){return a.match(escape)?'"'+a.replace(escape,function(a){var b=meta[a];return"string"==typeof b?b:(b=a.charCodeAt(),"\\u00"+Math.floor(b/16).toString(16)+(b%16).toString(16))})+'"':'"'+a+'"'}}(jQuery); $(document).ready(function(){ //определяем тип устройства и вешаем класс на body if(!isMobile.any()){ $('body').addClass('device-desktop'); }else { $('body').addClass('device-mobile'); } //Плавное перемещение к якорю $('a.goto').on("click touchstart", function() { if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); if (target.length) { $('html,body').animate({ scrollTop: target.offset().top-35 }, 1000); return false; } } }); /*popups*/ $('.image-popup-link').magnificPopup({ type: 'image' }); $('.popup-gallery').magnificPopup({ delegate: 'a', type: 'image', tLoading: 'Загружается изображение #%curr%...', mainClass: 'mfp-img-mobile', gallery: { enabled: true, navigateByImgClick: true, preload: [0,1] // Will preload 0 - before current, and 1 after the current image }, image: { tError: '<a href="%url%">Изображение #%curr%</a> не может быть загружено.', } }); $('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({ disableOn: 700, type: 'iframe', mainClass: 'mfp-fade', removalDelay: 500, preloader: false, fixedContentPos: false }); /*tooltips*/ $('.js-car-item').each(function(){ var titleHeight = $(this).find('.header-car-item-title').outerHeight(); var contentHeight = $(this).find('.header-car-item-content').outerHeight(); $(this).find('.header-car-item-content').css({ 'top': -(contentHeight+12)+'px' }); }); $('.details-list-item').each(function(){ var contentHeight = $(this).find('.details-list-item-tooltip').outerHeight(); $(this).find('.details-list-item-tooltip').css({ 'top': -(contentHeight+12)+'px' }); }); /*select*/ $(".js-select").select2(); /*sliders*/ $('.js-reviews-slider').bxSlider({ pager: true, }); $('.js-reviews-slider2').bxSlider({ pager: true, slideWidth: 530, adaptiveHeight: true }); $('.js-marks-slider').bxSlider({ pager: false, minSlides: 6, maxSlides: 6, moveSlides: 1, auto: true, pause:2000, slideWidth: 170, onSliderLoad: function() { $('.js-marks-slider li .mark-item').matchHeight(); } }); /*$(function() { $('.reason-item').matchHeight(''); });*/ /*js show*/ $('.js-show').on('click', function(e) { e.preventDefault(); var showTarget = $(this).data('show'); $(this).hide(); $(showTarget).show(300); }); $(window).load(function(){ var data = $('.s-map').attr('path'); setTimeout(function(){ $('.s-map').load('./'+data); },100); }); $('.goup').on('click', function(){ if ($(this).hasClass('top')) { $(this).removeClass('top'); $(this).find('span').text('Наверх'); $(this).find('i').addClass('fa-caret-up'); $(this).find('i').removeClass('fa-caret-down'); var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); if (target.length) { $('html,body').animate({ scrollTop: scrollPosition }, 1000); return false; } } else { $(this).addClass('top'); $(this).find('span').text(''); $(this).find('i').removeClass('fa-caret-up'); $(this).find('i').addClass('fa-caret-down'); scrollPosition = $(window).scrollTop(); var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); if (target.length) { $('html,body').animate({ scrollTop: target.offset().top }, 1000); return false; } } }); /*calc cars*/ file = './models-json.json'; $.ajax({ url: file, //force to handle it as text cashe: true, dataType: "text", success: function(data) { //data downloaded so we call parseJSON function //and pass downloaded data var json = $.parseJSON(data); //now json variable contains data in json format //let's display a few items /*$('#results').html('Plugin name: ' + json.name + '<br />Author: ' + json.author.name);*/ $.each(json, function(key, val) { $('.select-car-mark').append('<option value="'+val.optionValue+'">'+val.optionTitle+'</option>'); }); } }); $('.select-car-mark').on('change', function() { thisValue = $(this).val(); if (thisValue != "" && thisValue != "Другое") { $('.select-car-model').prop({ disabled: false, }); $.ajax({ url: file, //force to handle it as text cashe: true, dataType: "text", success: function(data) { //data downloaded so we call parseJSON function //and pass downloaded data var json = $.parseJSON(data); //now json variable contains data in json format //let's display a few items /*$('#results').html('Plugin name: ' + json.name + '<br />Author: ' + json.author.name);*/ $.each(json, function(key, val) { if (val.optionValue == thisValue) { var modelsData = val.models; $('.select-car-model').val('Модель'); $('.select-car-model + .select2').find('.select2-selection__rendered').text('Модель'); $('.select-car-model').html('<option value="">Модель</option><option value="Другое">Другое</option>'); $.each(modelsData, function(key2, val2) { $('.select-car-model').append('<option value="'+val2.optionValue+'">'+val2.optionTitle+'</option>'); }); } }); } }); }else { $('.select-car-model').prop({ disabled: true, }); } }); /*$('.s-reviews2').resizecrop({ width:283, height:273, vertical:"center" });*/ }); /* * Обработка формы */ $(document).ready(function(){ var magnificPopup = $.magnificPopup.instance; $('.ajax-popup-link').magnificPopup({ type: 'ajax', removalDelay: 500, ajax: { settings: null, cursor: 'mfp-ajax-cur', tError: '<a href="%url%">Контент</a> не может быть загружен.' }, callbacks: { beforeOpen: function() { this.st.mainClass = 'mfp-zoom-in'; }, parseAjax: function() { setTimeout(function() { console.log('After open'); $('input.phone').inputmask({ mask: '+7 (999) 999 99 99', showMaskOnHover: false, showMaskOnFocus: true, }); $('input, textarea').placeholder(); }, 100); } }, midClick: true }); //parsing utm var $_GET = {}; document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () { function decode(s) { return decodeURIComponent(s.split("+").join(" ")); } $_GET[decode(arguments[1])] = decode(arguments[2]); }); $('input.phone').inputmask({ mask: '+7 (999) 999 99 99', showMaskOnHover: false, showMaskOnFocus: true, }); $('input, textarea').placeholder(); //Функция проверки на валидность function validate(field, type) { var pp = ''; if(type == 'email'){ var pp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; } //если подключен плагин maskedinput if(type == 'phone'){ var pp = /^\+?[\d()\-\s]*\d+\s*$/; } //если нет маски /*if(type == 'phone'){ var pp = /^((8|\+7|3|\+3)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,20}$/; }*/ if(type == 'onlyNumber'){ var pp = /^([0-9()\/+ -]+)$/; } if(type == 'notEmpty'){ var pp = /^[A-Za-zА-Яа-я0-9 _]*[A-Za-zА-Яа-я0-9][A-Za-zА-Яа-я0-9 _#()$@8%№;'":,.?!#*-]*$/; } //Проверка поля по выбранному типу if(!field.match(pp)){ return false; } return true; } //количество обязательных полей var required; //количество полей прощедших валидацию var validated; //тип формы var formtype = ''; //проверяем валидность при изменение текста в инпутах $('body').on('input', '.required',function(){ var fieldType = $(this).attr('name'); if(!validate($(this).val(), fieldType)) { $(this).parents('.form-group').removeClass('has-success').addClass('has-error'); } else { $(this).parents('.form-group').removeClass('has-error').addClass('has-success'); } //количество объязатеных полей required = $(this).parents('form').find('.required').length; //количество полей прошедших валидацию validated = $(this).parents('form').find('.has-success').length; if (required == validated){ $(this).parents('form').find('.error-msg').hide(); } }); $('input.required').bind('textchange', function (event, previousText) { var fieldType = $(this).attr('name'); if(!validate($(this).val(), fieldType)) { $(this).parents('.form-group').removeClass('has-success').addClass('has-error'); } else { $(this).parents('.form-group').removeClass('has-error').addClass('has-success'); } //количество объязатеных полей required = $(this).parents('form').find('.required').length; //количество полей прошедших валидацию validated = $(this).parents('form').find('.has-success').length; if (required == validated){ $(this).parents('form').find('.error-msg').hide(); } }); //проверяем валидность когда нажимается конпка $('body').on('click', '.submit',function(e){ e.preventDefault(); var $thisBtn = $(this); //запоминаем тип формы formtype = $(this).parents('form').data('type'); //проверяем обязательные поля на валидность $(this).parents('form').find('.required').each(function(){ var fieldType = $(this).attr('name'); if(!validate($(this).val(), fieldType)) { $(this).parents('.form-group').removeClass('has-success').addClass('has-error'); } else { $(this).parents('.form-group').removeClass('has-error').addClass('has-success'); } }); //количество объязатеных полей required = $(this).parents('form').find('.required').length; //количество полей прошедших валидацию validated = $(this).parents('form').find('.has-success').length; //если нет ошибок if (required == validated){ var formData = {}; formData.username = $(this).parents('form').find('.name').val(); formData.phone = $(this).parents('form').find('.phone').val(); formData.email = $(this).parents('form').find('.email').val(); formData.message = $(this).parents('form').find('.message').val(); formData.comments = $(this).parents('form').find('.comments').val(); formData.carMarkUser = $(this).parents('form').find('.carMarkUser').val(); formData.formtype = formtype; formData.file = $(this).parents('form').find('.file-link').html(); formData.carMark = $(this).parents('form').find('.select-car-mark').val(); formData.carModel = $(this).parents('form').find('.select-car-model').val(); formData.carYear = $(this).parents('form').find('.select-car-year').val(); //utm $('.utm_campaign').text($_GET["utm_campaign"]); if ($_GET["utm_campaign"] != undefined) { formData.utmCampaign = $_GET["utm_campaign"] } $('.utm_term').text($_GET["utm_term"]); if ($_GET["utm_term"] != undefined) { formData.utmTerm = $_GET["utm_term"] } $('.utm_source').text($_GET["utm_source"]); if ($_GET["utm_source"] != undefined) { formData.utmSource = $_GET["utm_source"] } $('.utm_medium').text($_GET["utm_medium"]); if ($_GET["utm_medium"] != undefined) { formData.utmMedium = $_GET["utm_medium"] } //идентификатор цели метрики var yaTarget = $(this).parents('form').data('target'); //чистим форму function clearForm () { $(this).removeClass('valid-for-file-upload'); $('input:not(":checkbox"), textarea, select').val(''); $('.form-group').removeClass('has-success').removeClass('has-error'); formtype = ''; }; $thisText = $(this).text(); $thisBtn.addClass('disabled').text('Отправка...') $.ajax({ //отправляем аяксом url:'php/mail.php', type:'POST', data:'jsonData=' + $.toJSON(formData), success: function() { $('.submit-form-loading').fadeOut(); $('.submit-form-error').fadeOut(); magnificPopup.close(); setTimeout(function() { $('.thank-you-btn').magnificPopup({ type: 'ajax', removalDelay: 500, ajax: { settings: null, cursor: 'mfp-ajax-cur', tError: '<a href="%url%">Контент</a> не может быть загружен.', }, callbacks: { beforeOpen: function() { this.st.mainClass = 'mfp-zoom-in'; }, }, midClick: true }).magnificPopup('open'); }, 501); $thisBtn.removeClass('disabled').text($thisText); clearForm (); reachGoalFunc(yaTarget); reachGoalFunc(obwee_koli4estvo); }, error: function() { alert('При отправке данных произошла ошибка, попробуйте снова.'); $thisBtn.removeClass('disabled').text($thisText); clearForm (); } }); } }); }); В корне лежат следующие файлы html. modal-thank-you.html <div class="white-popup mfp-with-anim"> <div class="thank-you"> <h4>Спасибо!</h4> <p>Ваша заявка получена.</p> <p>В ближайшее время</p> <p>мы с Вами свяжемся.</p> </div> </div> modal-callback.html <div class="white-popup mfp-with-anim"> <form data-type="Заказать обратный звонок" data-target="podborCallback" class="form"> <div class="form-heading"> <h4>Заказать обратный звонок</h4> <p> Оставьте контактные данные и<br> мы перезвоним в течение 10 минут. </p> </div> <div class="form-content"> <div class="form-group"> <input type="text" name="notEmpty" class="form-control name" placeholder="Ваше имя"> </div> <div class="form-group"> <input type="text" name="phone" class="form-control required phone" placeholder="Ваш телефон *"> </div> <a href="#" class="submit btn btn-success"> Заказ звонка </a> </div> </form> </div> modal-service1.html <div class="white-popup mfp-with-anim"> <form data-type="Выездная проверка автомобиля экспертом" data-target="podborService1" class="form"> <div class="form-heading"> <h4>Оставить заявку</h4> <p> Заполните форму и мы <br> перезвоним Вам в течение 15 минут. </p> </div> <div class="form-content"> <div class="form-group"> <input type="text" name="notEmpty" class="form-control name" placeholder="Ваше имя"> </div> <div class="form-group"> <input type="text" name="phone" class="form-control required phone" placeholder="Ваш телефон *"> </div> <a href="#" class="submit btn btn-success"> Оставить заявку </a> </div> </form> </div> При заполнении формы <div class="buy-one-click"> <div class="container"> <div class="section-title"> <h3>Продайте свой автомобиль всего за 1 клик!</h3> </div> <a href="modal-service1.html" class="ajax-popup-link btn btn-success" style="text-transform: none; padding: 20px 20px 20px 40px; width:300px; margin:10px auto 0; display:block; line-height: 0.8;position:relative; font-size:22px;"><img src="img/arrow-right.png" style="position:absolute; top:21px;left:53px;">Оставить заявку</a> </div> modal-service1.html <div class="white-popup mfp-with-anim"> <form data-type="Выездная проверка автомобиля экспертом" data-target="podborService1" class="form"> <div class="form-heading"> <h4>Оставить заявку</h4> <p> Заполните форму и мы <br> перезвоним Вам в течение 15 минут. </p> </div> <div class="form-content"> <div class="form-group"> <input type="text" name="notEmpty" class="form-control name" placeholder="Ваше имя"> </div> <div class="form-group"> <input type="text" name="phone" class="form-control required phone" placeholder="Ваш телефон *"> </div> <a href="#" class="submit btn btn-success"> Оставить заявку </a> </div> </form> </div> При вводе Имя и номера телефона выскакивают всплывающие сообщения от файла modal-thank-you.html содержащий информацию: Спасибо!Ваша заявка получена.В ближайшее время мы с Вами свяжемся. И данное сообщение исчезает. При этом на почту ничего не приходит. -
На почту не приходят письма с заявками отправленные через лендинг
it-seo77 posted a question in JavaScript
Всем привет, не могу разобраться почему на почту с лендинга не приходят заявки. Есть файл script.js в нём есть такая часть содержимого. function clearForm () { $(this).removeClass('valid-for-file-upload'); $('input:not(":checkbox"), textarea, select').val(''); $('.form-group').removeClass('has-success').removeClass('has-error'); formtype = ''; }; $thisText = $(this).text(); $thisBtn.addClass('disabled').text('Отправка...') $.ajax({ //отправляем аяксом url:'php/mail.php', type:'POST', data:'jsonData=' + $.toJSON(formData), success: function() { $('.submit-form-loading').fadeOut(); $('.submit-form-error').fadeOut(); magnificPopup.close(); setTimeout(function() { $('.thank-you-btn').magnificPopup({ type: 'ajax', removalDelay: 500, ajax: { settings: null, cursor: 'mfp-ajax-cur', tError: '<a href="%url%">Контент</a> не может быть загружен.', }, callbacks: { beforeOpen: function() { this.st.mainClass = 'mfp-zoom-in'; }, }, midClick: true }).magnificPopup('open'); }, 501); $thisBtn.removeClass('disabled').text($thisText); clearForm (); reachGoalFunc(yaTarget); reachGoalFunc(obwee_koli4estvo); }, error: function() { alert('При отправке данных произошла ошибка, попробуйте снова.'); $thisBtn.removeClass('disabled').text($thisText); clearForm (); } }); } }); }); В файле index.php следующая часть кода: <div class="buy-one-click"> <div class="container"> <div class="section-title"> <h3>Продайте всего за 1 клик!</h3> </div> <a href="modal-service1.html" class="ajax-popup-link btn btn-success" style="text-transform: none; padding: 20px 20px 20px 40px; width:300px; margin:10px auto 0; display:block; line-height: 0.8;position:relative; font-size:22px;"><img src="img/arrow-right.png" style="position:absolute; top:21px;left:53px;">Оставить заявку</a> </div> И третий файл mail.php <?php if (isset($_POST['notEmpty'])) {$name = $_POST['notEmpty'];} if (isset($_POST['phone'])) {$phone = $_POST['phone'];} if (isset($_POST['formData'])) {$formData = $_POST['formData'];} $to = "online@yandex.ru"; /*Укажите адрес, га который должно приходить письмо*/ $sendfrom = "online@yandex.ru"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/ $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"; $subject = "Новая заявка"; $message = "$formData<br> <b>Имя пославшего:</b> $name <br><b>Телефон:</b> $phone<br>"; $send = mail ($to, $subject, $message, $headers); ?> Где тут могут быть ошибки?