PHPMailer не отправляет данные имен в сообщении

142
06 ноября 2019, 02:50

При отправке сообщения, почта принимает только сообщение вида

Откуда:
Отправитель:
Фамилия отправителя:
Адрес отправителя:
Сообщение:

без значений из формы.Не могу понять в чем проблема.

Вот код:

function validate(form){ 
check = ""; 
check+=validateFirstname(form.first_name.value); 
check+=validateSecondname(form.last_name.value); 
if (check == "") { 
		$.ajax({ 
			type:"POST", 
		     url:'./php_mailer/examples/contact.php', 
		     data:$('#content__form').serialize(), 
			 success: function (data) { 
                    // Вывод текста результата отправки в текущей форме 
                    alert('Ваш запрос отправлен, проверьте почту в течение суток.'); 
                } 
		}) 
	return false; 
} 
else {alert(check); return false;} 
} 
function validateFirstname(field){ 
return (field.replace(/\s+/g,'')!='')?"":"Не введено имя." 
return '' 
} 
function validateSecondname(field){ 
return (field.replace(/\s+/g,'')!='')?'':'Не введена фамилия.' 
return '' 
}
<!DOCTYPE html> 
<html lang="en-US"> 
<head> 
	<meta charset="UTF-8"> 
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
	<script type="text/javascript" src="scripts/validate.js"></script> 
</head> 
<body> 
<form onSubmit="return validate(this)" class="content__form"  method="POST"> 
	<input type="text" name="first_name" placeholder="First name" class="form__input" /> 
	<input type="text" name="last_name" placeholder="Last name" class="form__input" /> 
	<input type="text" name="email" placeholder="Email" class="form__input" /> 
	<input type="text" name="url" placeholder="Url" class="form__input" /> 
	<textarea name="message" placeholder="Message" cols="30" rows="10" class="form__text"></textarea> 
	<input type="submit" value="SUBMIT"/> 
	</form> 
  </body> 
</html>

И код на PHP:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST['first_name'])) {$first_name = $_POST['first_name'];}
    if (isset($_POST['last_name'])) {$last_name = $_POST['last_name'];}
    if (isset($_POST['email'])) {$email = $_POST['email'];}
    if (isset($_POST['url'])) {$url = $_POST['url'];}
    if (isset($_POST['message'])) {$message = $_POST['message'];}
    $to = "sayapov.ainur@mail.ru"; /*Укажите ваш адрес электронной почты*/
    $headers = "Content-type: text/plain; charset = utf-8";
    $message = "Откуда: $email \n\nОтправитель: $first_name \n\nФамилия отправителя: $last_name \n\nАдрес отправителя:$url \n\nСообщение: $message";

date_default_timezone_set('Etc/UTC');
require '../PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail->CharSet = "UTF-8";
$mail->Encoding = 'base64';
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
$mail->Host = "smtp.gmail.com";
$mail->SMTPSecure = 'tls';                            
$mail->Port = 25;
$mail->SMTPAuth = true;
$mail->Username = "blablae@gmail.com";
$mail->Password = "88888";
/** **/
$mail->setFrom($email, 'From User');
$mail->addReplyTo('reply-to@yoursitename.com', 'Reply-to Name');
$mail->addAddress($to, 'To Ainur');
$mail->Subject = "User notification.";
$mail->msgHTML($message);
if (!$mail->send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Message sent!";
}
} else {
    http_response_code(403);
    echo "Попробуйте еще раз";
}
?>
Answer 1

В js-функции validate() у вас неверный jquery-селектор для сериализации введеных значений элементов формы. Должно быть, например, так - $('.content__form').serialize()

Answer 2

Оказался еще и не подключен Jquery. Всем спасибо.

 <script src = "https://code.jquery.com/jquery-2.1.0.js"></script>
READ ALSO
Как правильно настроить .htaccess для nginx?

Как правильно настроить .htaccess для nginx?

Пробую настроить redirect по user_agent заголовкам на разные страницы сайтаНапример пользователя с устройства на ПО ios перенаправляет в раздел с контентом...

125
авторизация с hash [дубликат]

авторизация с hash [дубликат]

На данный вопрос уже ответили:

126
Как вывести на странице все исполняемые запросы к БД?

Как вывести на странице все исполняемые запросы к БД?

Во фреймворке есть debug panel, которая показывает огроомнейшее количество всех запросов, среди которых много служебных, для отладки, на сколько...

126
Ajax загрузка из бд

Ajax загрузка из бд

Пытаюсь сделать загрузку с помощю ajax из бд , но в ответ ничего не приходит , ошибок нету!

144