Помогите с формой, отправка данных на емейл

Alexey Gordienko
На сайте с 25.09.2010
Offline
313
1012

Есть форма - имя и телефон на jquery. Код файла с формой:

var feed = {

submit: function(elem) {

var form;

jQuery(elem).parents().each(function() {
if(jQuery(this).is('form'))
form = jQuery(this);
});

var postParams = {
method: 'feedback',
name: form.find('[name=name]').val(),
phone: form.find('[name=phone]').val()

};

jQuery('.errorMessage').remove();

var rename = /^[a-zA-Zа-яА-ЯёЁ ]*$/i;
var rephone = /^[0-9\-\+\(\) ]*$/i;

if(!postParams.name.length || postParams.name == form.find('[name=name]').attr('data-holder'))
return feed.errorMessage(form.find('[name=name]'), 'Вы не заполнили поле "Ваше имя"');

if(!rename.test(postParams.name))
return feed.errorMessage(form.find('[name=name]'), 'Неверно заполнено поле "Ваше имя"');

if(!postParams.phone.length || postParams.phone == form.find('[name=phone]').attr('data-holder'))
return feed.errorMessage(form.find('[name=phone]'), 'Вы не заполнили поле "Ваш телефон"');

if(!rephone.test(postParams.phone))
return feed.errorMessage(form.find('[name=phone]'), 'Неверно заполнено поле "Ваш телефон"');

// Disable button
form.find("input.btn").attr("disabled", "disabled").val("Ожидайте..");

jQuery.post('contact.php', postParams, function(data) {

$data = jQuery.parseJSON(data);

if(!$data.status)
return false;

feed.close();

document.location.href = 'success.php';
});

return false;
},
errorMessage: function(elem, msg) {
jQuery('<div class="errorMessage">' + msg + '</div>').appendTo('body').css({
'left': jQuery(elem).offset().left,
'top': jQuery(elem).offset().top - 30
});

return false;
},
open: function(id) {
jQuery('#' + id).show();

return false;
},
close: function() {
jQuery('.popupBgr').hide();
}
};

jQuery(function($) {
var menu = $('.menu');

menu.find('a').click(function(e) {
var _scrollTop = $('#' + $(this).attr('rel')).offset().top;

$('html, body').stop().animate({ scrollTop: _scrollTop }, 'slow');

return false;
});

$('[data-holder]').each(function() {
if(!this.value.length)
this.value = $(this).attr('data-holder');
}).focus(function() {
if(this.value == $(this).attr('data-holder'))
this.value = '';
}).blur(function() {
if(this.value == '')
this.value = $(this).attr('data-holder');
});

$.post('system/handler.php', { 'method': 'time' }, function(data) {

$data = jQuery.parseJSON(data);

if(!$data.status)
return false;

$('#counter').countdown({
timestamp: (new Date($data.timestamp.year, $data.timestamp.month, $data.timestamp.day, $data.timestamp.hour, $data.timestamp.minute, $data.timestamp.second)).getTime()
});

var month = [
"января",
"февраля",
"марта",
"апреля",
"мая",
"июня",
"июля",
"августа",
"сентября",
"октября",
"ноября",
"декабря"
];

$('.headForm-title span').html($data.timestamp.day + ' ' + month[$data.timestamp.month]).parent().show();
});

$( "#accordion" ).accordion({
heightStyle: "content"
});
});

Насколько я понимаю, данные отправляются на обработку в файл contact.php и если обработка прошла успешно выполняется файл success.php

Мне нужно что бы файл contact.php отправил данные из формы на емейл. Как это реализовать?

В php не силён =( Пока все попытки не увенчались успехом.

Обучение арбитражу трафика. Affiliate marketing education. 199$. only for 7 people. +48726327717 ( TG | WhatsApp )
IL
На сайте с 20.04.2007
Offline
435
#1
Noctes:
Как это реализовать?
В php не силён =( Пока все попытки не увенчались успехом.

Взять за основу готовый скрипт

или из мануала, вставить в $message свой текст, в email свой email (куда отправлять)

Переменные из формы собрать в сообщение так примерно:


<?php
if (!empty($_POST)) {
$to = 'noctes@example.com';
$subject = 'Сообщение с сайта';

$headers = 'From: noctes@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

$message = "
Новое сообщение с сайта

Имя: {$_POST['name']}
Телефон: {$_POST['phone']}

С уважением,
Автоответчик
";
mail($to, $subject, $message, $headers);
}
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
Alexey Gordienko
На сайте с 25.09.2010
Offline
313
#2

ivan-lev, если я правильно понял, то в файл contact.php нужно вставить код приведённый вами, что я собственно и сделал. Но, письмо не отправляется + нужно каким-то образом вернуть обратно уведомление для скрипта, о том что письмо отправлено и можно выполнять файл success.php.

Я смотрел мануалы и находил кучу готовых форм, с которыми бы справился. Просто, эта форма очень понравилась, и хотелось бы поставить именно её.

PS: спасибо за помощь!

---------- Добавлено 08.09.2013 в 15:53 ----------

PPS добавил всё в файл contact.php ничего не отправилось =(

IL
На сайте с 20.04.2007
Offline
435
#3

Noctes, код набросал без проверки.. может и ошибся (хотя, вроде всё верно).. А может с заголовками пошаманить нужно (from, например, указать..)

Если в contact.php поместить

<?php
echo json_encode(array('status'=>1));

сама форма отработает (переход произойдёт)?

Alexey Gordienko
На сайте с 25.09.2010
Offline
313
#4
ivan-lev:
сама форма отработает (переход произойдёт)?

ничего не происходит =(

м.б. не правильно указан путь к php файлу?

jQuery.post('contact.php'

ЗЫ файлы с кодом в одной папке лежат

M2
На сайте с 11.01.2011
Offline
342
#5

Noctes,

ВЫ где отправляете? На локальном сервере или на реальном хосте? Как там с SMTP сервером и с настройками SMTP в php.ini?

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
Alexey Gordienko
На сайте с 25.09.2010
Offline
313
#6

mark2011, на хосте всё лежит.

Хост бегет.

Где можно глянуть эти самые настройки?

M2
На сайте с 11.01.2011
Offline
342
#7
Noctes:
Где можно глянуть эти самые настройки?
mark2011:
и с настройками SMTP в php.in

десять символов

Alexey Gordienko
На сайте с 25.09.2010
Offline
313
#8

mark2011, нет у меня доступа к этому файлу.

Формы обратной связи на цмсках - все работают.

IL
На сайте с 20.04.2007
Offline
435
#9

Noctes, выложил бы уже на посмотреть (сюда.. или в личку).

Может просто JS-ошибка где.. потому форма и не работает.

А вообще - если занимаешься такой штукой, есть смысл инструменты вебмастера/разработчика освоить.. F12 в браузере ткнуть - много интересного можно накопать.

Alexey Gordienko
На сайте с 25.09.2010
Offline
313
#10
ivan-lev:
Noctes, выложил бы уже на посмотреть (сюда.. или в личку).
Может просто JS-ошибка где.. потому форма и не работает.

скинул в ЛС урл.

PS в первом посте весь код файла js

---------- Добавлено 08.09.2013 в 16:43 ----------

частично разобрались, спасибо ivan-lev. Файл пхп лежал не в той папке =)

Переместил в нужную, но письмо всё равно не отправляется. перебрасывает на главную и всё . =(

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий