Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> AJAX + jQuery + PHP обработчик формы, Обработчик на php для отправки данных формы на email
dunek_  
 ۩  [x]    Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42431
На форуме: 1 год, 2 месяца
Карма:




Здравствуйте! Нужна ваша помощь, спецы!

Во фронтенде есть формы следующего вида:
<form name="form1" class="form1">
<input
type="text" id="name" placeholder="Имя">
<input
type="text" id="phone" placeholder="Телефон">
<input
type="text" id="email" placeholder="E-mail">
<input
type="hidden" id="tema" value="Заявка на получение прайса">
</form>
<form
id="open_tab" target="_blank" action="files/price.docx"></form>
<div
class="divButt"><a href="" class="butt SendPr1">Получить прайс</a></div>


Вся кухня творится в данный момент на JS:
$('a.SendPr1').click(function(){
var name = $('input#name').val();
var phone = $('input#phone').val();
var email = $('input#email').val();
var tema = $('input#tema').val();
var page = $('input#page').val();
var otUrl = $('input#otUrl').val();
var nfilter = /^[a-zA-Zа-яА-Я0-9 \-]+$/;
var tfilter = /^[0-9-\ \(\)\+]+$/;
var emailfilter = /^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i;

g = 0;

if (!tfilter.test(phone)) { $('input#phone').css('color','red'); $('input#phone').css('border-color','red'); g = 1;} else { $('input#phone').css('color','#1f1f1f'); $('input#phone').css('border-color','#ffffff'); }

if (!nfilter.test(name)) { $('input#name').css('color','red'); } else { $('input#name').css('color','#1f1f1f'); }

if (!emailfilter.test(email)) { $('input#email').css('color','red'); $('input#email').css('border-color','red'); g = 1; } else { $('input#email').css('color','#1f1f1f'); $('input#email').css('border-color','#ffffff'); }

if (name.length == 0) g = 1;
if (phone.length == 0) g = 1;
if (email.length == 0) g = 1;

if (g == 0) {$.ajax({type: "POST", url: "ajax.php", data: "tel="+phone+"&name="+name+"&mail="+email+"&tema="+tema+"&page="+page+"&oturl="+otUrl, success: function(html){
if (html == 'error') { alert('Извините, во время отправки сообщения произошла ошибка.\n\nОбратитесь по телефону и мы с удовольствием проконсультируем вас.'); }
else {
alertt('Спасибо, что выбрали нас!','В ближайшее время Вам позвонит наш специалист.');
showPopup(3);
document.form1.reset();
$("#open_tab").submit();
}
} }
);
}

return false;
});


alertt в случае успеха - это названии функции с 2умя параметрами, которая вставляет нужный текст во фронтенд.
function alertt(t1,t2) {
$('div#popup div.blockPopupForm form').hide();
$('div#popup div.blockPopupForm').animate({'height':'280px'},200);
$('div.blockPopupForm span.H1').text(t1);
$('div.blockPopupForm span.pH1').text(t2);
}


Не хватает самого ajax.php

Можете помочь в написании? Телефон, e-mail, имя клиента должны отправляться на почту админу...
Заранее благодарю!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

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



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26258
Пользователь №: 21350
На форуме: 7 лет, 11 дней
Карма: 729

Не курю:
1 год, 5 месяцев, 27 дней


600 рублей.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
dunek_  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42431
На форуме: 1 год, 2 месяца
Карма:




http://ru.stackoverflow.com/q/485955/200080
у меня есть примерный набросок ajax.php:
http://lexest.vshatre.by/ajax.txt

но мне непонятно, как грамотно в ajax.php принять данные, посылаемые AJAX -ом. конкретно вот это:
data: "tel="+phone+"&name="+name+"&mail="+email+"&tema=" ;+tema+"&page="+page+"&oturl="+otUrl

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

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



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26258
Пользователь №: 21350
На форуме: 7 лет, 11 дней
Карма: 729

Не курю:
1 год, 5 месяцев, 27 дней


в POST массиве, но ты не парься, т.к. главная твоя проблема - это отсылка почты.
по этому я и твою проблему превратить в мой досуг.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
[x] Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









<?php 
$sendto = "andrew.burn1ng@gmail.com"; // my mail

$username = $_POST['name'];
$userphone = $_POST['phone'];
$usermail = $_POST['mail'];

// headers of email
$subject = "New Client!";
$headers = "From: lexest-promo\r\n";
$headers .= "Reply-To: ". strip_tags($username) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=utf-8 \r\n";

// body of email
$msg = "<html><body style='font-family:Tahoma,sans-serif;'>";
$msg .= "<h2 style='font-weight:bold;border-bottom:1px dotted #ccc;'>Client request price</h2>\r\n";
$msg .= "<p><strong>Name:</strong> ".$username."</p>\r\n";
$msg .= "<p><strong>Telephone number:</strong> ".$userphone."</p>\r\n";
$msg .= "<p><strong>E-mail:</strong> ".$usermail."</p>\r\n";
$msg .= "</body></html>";

// sending message
@mail($sendto, $subject, $msg, $headers)
?>


КОНКРЕТИЗИРУЮЩИЙ ВОПРОС:
Как именно распарсить эту строку:

data: "tel="+phone+"&name="+name+"&mail="+email+"&tema=" ;+tema
посылаемую через ajax, и получить в ajax.php указанные пользователем данные, чтобы в дальнейшем сформировать из них письмо и отправить e-mail админу?
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

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



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26258
Пользователь №: 21350
На форуме: 7 лет, 11 дней
Карма: 729

Не курю:
1 год, 5 месяцев, 27 дней


1. тебе не надо её распарсивать, она в POST массиве
2. mail() - почти всегда у тебя обосрётся, по ряду причин, письма тупо попадут в спам
3. проверки на стороне сервера тоже нужны.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

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



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 7 месяцев, 11 дней
Карма: 13




Игорь_Vasinsky, вам не обломиться тут 600 рублей biggrin.gif
Вы заработаете чуть позже, когда ТСа хостер сначала нагнет за спам, потом его взломают и опять хостер нагнет за спам. А когда он с этим справиться, отправляемые письма уже успешно начнут уходить в спам, но он об этом не узнает, т.к. получатели писем тупо их не получат.
И вот когда это все случиться, тебе Игорь придется благородно помочь человеку все исправить за 3000 рублей.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

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



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26258
Пользователь №: 21350
На форуме: 7 лет, 11 дней
Карма: 729

Не курю:
1 год, 5 месяцев, 27 дней


Цитата
Вы заработаете чуть позже, когда ТСа хостер сначала нагнет за спам, потом его взломают и опять хостер нагнет за спам. А когда он с этим справиться, отправляемые письма уже успешно начнут уходить в спам, но он об этом не узнает, т.к. получатели писем тупо их не получат.
И вот когда это все случиться, тебе Игорь придется благородно помочь человеку все исправить за 3000 рублей.

на то и расчёт, чтобы человек понял - что скупой платит дважды (ну тут с учётом курса и т.д. малость больше)


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
dunek_  
 ۩  [x] Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42431
На форуме: 1 год, 2 месяца
Карма:




ребята. всё заработало, ошибки были в JS...

    $('a.sendFormPop').click(function() {
var form_data = $($(".myPopup")).serialize();
var name = $('input#rt_name').val();
var phone = $('input#rt_phone').val();
var email = $('input#rt_email').val();
var tema = $('input#rt_tema').val();
var nfilter = /^[a-zA-Zа-яА-Я0-9 \-]+$/;
var tfilter = /^[0-9-\ \(\)\+]+$/;
var emailfilter = /^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i;

g = 0;


if (!nfilter.test(name)) {
$('input#rt_name').css('color', 'red');
$('input#rt_name').css('border-color', 'red');
g = 1;
} else {
$('input#rt_name').css('color', '#1f1f1f');
$('input#rt_name').css('border-color', '#ffffff');
}

if (!tfilter.test(phone)) { $('input#rt_phone').css('border','2px solid red'); g = 1;} else { $('input#rt_phone').attr('style',''); }

if (!emailfilter.test(email)) {
$('input#rt_email').css('color', 'red');
$('input#rt_email').css('border-color', 'red');
g = 1;
} else {
$('input#rt_email').css('color', '#1f1f1f');
$('input#rt_email').css('border-color', '#ffffff');
}

if (name.length == 0) g = 1;
if (phone.length == 0) g = 1;
if (email.length == 0) g = 1;

if (g == 0) {
$.ajax({
type: "POST",
url: "ajax.php",
data: form_data,
success: function(html) {
console.log(html);
if (html == 'error') {
alertt('Извините, во время отправки сообщения произошла ошибка.', 'Обратитесь по телефону и мы с удовольствием проконсультируем вас.');
} else {
alertt('Спасибо, что выбрали нас!', 'В ближайшее время с Вами свяжется наш специалист.');
}
}
}
);
}

return false;
});


и вот форма:
<div id="popup">
<div
class="blockPopupForm">
<a
class="closePopup" href="#"></a>
<span
class="H1"></span>
<span
class="pH1"></span>
<form
name="popup1Form" class="myPopup">
<input
type="text" id="rt_name" name="name" placeholder="Имя">
<input
type="text" id="rt_phone" name="phone" placeholder="Номер телефона">
<input
type="text" id="rt_email" name="email" placeholder="Электронная почта">
<input
type="hidden" id="rt_tema" name="tema" value="">
<a
href="" class="butt sendFormPop">Оставить заявку</a>
</form>
</div>
</div>


а теперь на ваше усмотрение хочу предложить мой код ajax.php
что скажете? я не понял, что плохого в функции mail ?
првоерку на пустые данные добавил, strip_tags тоже)

<?
if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")&&(isset($_POST['email'])&&$_POST['email']!="")&&(isset($_POST['tema'])&&$_POST['tema']!="")){ // Проверка отправилось ли наши поля и не пустые ли они
$to = 'andrew.burn1ng@gmail.com'; // Почта получателя, через запятую можно указать сколько угодно адресов
$subject = 'Срочно позвоните клиенту!'; // Загаловок сообщения
$myusername = strip_tags($_POST['name']);
$myusertel = strip_tags($_POST['phone']);
$myuseremail = strip_tags($_POST['email']);
$myusertema = strip_tags($_POST['tema']);
$message = '
<html>
<head>
<title>'
.$subject.'</title>
</head>
<body>
<p>Имя: '
.$myusername.'</p>
<p>Телефон: '
.$myusertel.'</p>
<p>E-mail: '
.$myuseremail.'</p>
<p>Тема для созвона с потенциальным клиентом: '
.$myusertema.'</p>
</body>
</html>'
; //Текст нащего сообщения можно использовать HTML теги
$headers = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
$headers .= "From: lexest-promo <mail@lexest.by>\r\n"; //Наименование и почта отправителя
mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
}
?>


Это сообщение отредактировал dunek_ - 29.01.2016 - 01:23
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
dunek_  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42431
На форуме: 1 год, 2 месяца
Карма:




deleted message, sorry

Это сообщение отредактировал dunek_ - 29.01.2016 - 01:21
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

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



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5583
Пользователь №: 32538
На форуме: 4 года, 9 месяцев, 29 дней
Карма: 56




Даже я бы себя застрелил за такой код
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
dunek_  
 ۩  Дата
Цитировать сообщение

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



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 5
Пользователь №: 42431
На форуме: 1 год, 2 месяца
Карма:




Цитата (Zzepish @ 29.01.2016 - 01:24)
Даже я бы себя застрелил за такой код

Подскажите, что не так, а лучше, как именно сделать лучше
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

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



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 7 месяцев, 11 дней
Карма: 13




dunek_
Начни с того, что в глобальные переменные писать значения не стоит, боком выйдет рано или поздно. Проверки на стороне клиента это хорошо, но на стороне сервера это делать необходимо обязательно. Самое главное правило - никогда не верь входящим данным. Запрещено все, что не разрешено.

По самой отправке почты, можешь почитать о последствиях , которые тебя с твоим кодом ждут , чуть выше.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса