Jump to content

it-seo77

Newbie
  • Posts

    14
  • Joined

  • Last visited

Everything posted by it-seo77

  1. Реально не понятно каким образом сделать отправку по ajax?Можешь конкретно подсказать как этот запрос правильно сформировать. Реально соображал бы я, не задавал бы такие вопросы.Куда залить данный запрос, в какой файл?
  2. А чем пример в предыдущем моём сообщении не устраивает? Данный код мы куда заливаем?В файл mail.php после обработки данных?
  3. Как правильно отправить данный запрос?В какой файл закатать данную функцию?
  4. Извиняюсь, вообще не знал как вызывается подобная функция. Залил в файл обработчик 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> С неё так же как и с двух других форм обратной связи приходят пустые сообщения: Имя отправителя: Марка авто: Модель авто: Год выпуска: Телефон:
  5. Дело в том, что впервые столкнулся с 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"); ?> Приходит следующее содержание сообщения на почту: Имя отправителя: Марка авто: Модель авто: Год выпуска: Телефон: Уважаемые мастера, подскажите пожалуйста, почему письма приходят пустые? Что я не так сделал?
  6. Как всегда чувствовал, что тут ловить нечего, зря только время потерял, никакой помощи не жди, одна лишь критика, набор кармы, мерзость и всё. Спасибо вам всем!
  7. <?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); ?> Вставил так код приходит только следующее пустое значение, где нет отображения имени отправителя и номер телефона. Имя отправителя: Телефон:
  8. Всё равно не понятно как правильно настроить файл mail.php
  9. Можете пример показать, в каком месте правильно всё это выставляется?
  10. <?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
  11. Прописал, всё равно не доходят письма. Может всё так и ошибка в содержимом mail.php?Если используется jsonData , как тогда правильно сформировать этот mail.php?
  12. Пардон /*! 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 содержащий информацию: Спасибо!Ваша заявка получена.В ближайшее время мы с Вами свяжемся. И данное сообщение исчезает. При этом на почту ничего не приходит.
  13. Всем привет, не могу разобраться почему на почту с лендинга не приходят заявки. Есть файл 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); ?> Где тут могут быть ошибки?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy