Вход

Просмотр полной версии : Помогите отправить данные в php


karakym
29.11.2016, 16:31
Доброго времени суток, есть такой jquery:
// Form Submit
{
requestForm.on('submit', function(e){
e.preventDefault();
if(!fullNameValidate() && !phoneNumberValidate() && !emailValidate()){

$('#request-demo').removeClass('success error');
$('#request-demo').addClass('loading');

$('html, body').animate({scrollTop: $('#request-demo').offset().top - 150}, 1000);
var fullNameVal = $('#fullName').val();
var phoneNumberVal = $('#phoneNumber').val();
var emailVal = $('#email').val();
var messageVal = $('#message').val();
var dataString = 'fullNameVal=' + fullNameVal +
'&jobTitleVal=' + jobTitleVal +
'&organizationVal=' + organizationVal +
'&phoneNumberVal=' + phoneNumberVal +
'&emailVal=' + emailVal +
'&messageVal=' + messageVal;
var pushBulletString = 'Имя: ' + fullNameVal +
'\nНомер телефона: ' + phoneNumberVal +
'\nEmail: ' + emailVal +
'\nСообщение: ' + messageVal;
$.ajax({
type: "POST",
url: "./form.php",
crossDomain: true,
data: dataString,
success: function(response) {
if(response.state === 'success'){ // Request added
$('.success-block .user-name').text(response.fullName);
$('#request-demo').removeClass('loading');
$('#request-demo').addClass('success');
pushBullet(pushBulletString);
}else if(response.state === 'requested'){ // User Already Requested
$('.requested-block .user-name').text(response.fullName);
$('.requested-block .email').text(response.email);
$('#request-demo').removeClass('loading');
$('#request-demo').addClass('requested');
}else{ // Some kind of error
$('#request-demo').removeClass('loading');
$('#request-demo').addClass('error');
setTimeout(function(){ $('#request-demo').removeClass('error'); }, 2000);
}
// setTimeout(function(){ $('#request-demo').removeClass('success'); }, 2000);
},
error: function(error){
console.log(error);
$('#request-demo').removeClass('loading');
$('#request-demo').addClass('error');
setTimeout(function(){ $('#request-demo').removeClass('error'); }, 2000);
}
});
}
})
}
Но потерялся php файл который получает данные и отправляет на почту.
Помогите его правильно составить.

karakym
29.11.2016, 16:43
Пробую вот такой php:
<?php
$addresses = array(
'karakymg@gmail.com',
);

if (isset($_REQUEST['fullNameVal'])){
$mess = $_REQUEST['messageVal'];
$fname = $_REQUEST['fullNameVal'];
$phone = $_REQUEST['phoneNumberVal'];
$from = $_REQUEST['emailVal'];
$send = "Здравствуйте меня зовут: ".$fname."\r\nПозвоните мне на номер: ".$phone."\r\nЯ оставил вам сообщение: ".$mess;
$to= implode(', ', $addresses);
$subject = "Заказ с сайта targo.in.ua";
$headers = "From: $from\r\nReplay-To: $from\r\nContent-type: text/plain; charset=utf-8\r\n";
mail($to, $subject, $send, $headers);
}
?>
но выдает ошибку.

karakym
29.11.2016, 16:50
изначально url php файла стоял такой:
http://anastawfeek.com/itworxhub/process.php
но если туда зайти там отображается только эта строчка:
{"state":"fail","error":"More informations required."}{"state":"requested","firstName":"Shared","email":""}
Исходник к сожаленью не увидеть(

laimas
30.11.2016, 01:27
Бедлам в коде со строки 11 и по 20 можно спокойно выбрасывать и заменить на var dataString = this.serialize();, и на сервере оперировать ключами, которые есть имена полей формы.
Что это такое pushBullet(pushBulletString) и нужно ли не знаю.

crossDomain: true, это для кого? Отправка то на свой домен, каким боком нужен crossDomain?

$_REQUEST - это данные которые могут перекрываться GET, POST, COOKIE данными и в той последовательности, в которой они прописаны в конфигурации. Другими словами клиент может сделать произвольную подставу. Если вы контролируете процесс, ожидаете данные пришедшие методом POST, то и проверять нужно не $_REQUEST, а $_POST.

По самой отправке почты - тревожим Гугл, спрашивая "PHP отправка почты" и читаем как правильно оформляется почтовое отправление, ибо так как это у вас написано делать нельзя. При этом отправка может быть как функциями mail/mb_send_mail, так и SMTP.