@AlexMark

Как редактировать вид mail.php?

После того, как человек нажмет подтвердить отправку письма для обратной связи на главной странице, форма перенаправляет на файл mail.php
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
if (isset($_POST['name'])) {$name = $_POST['name']; if ($name == '') {unset($name);}}
if (isset($_POST['email'])) {$email = $_POST['email']; if ($email == '') {unset($email);}}
if (isset($_POST['phonenumber'])) {$phone = $_POST['phonenumber']; if ($phone == '') {unset($phone);}}
if (isset($_POST['message'])) {$body = $_POST['message']; if ($body == '') {unset($body);}}
  
if (isset($name) && isset($email) && isset($phone) && isset($body)){
  
$address = "mymail@gmail.com";
$mes = "Имя: $name \nE-mail: $email \nТелефон: $phone \nТекст: $body";
$send = mail ($address,$phone,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email");
if ($send == 'true')
{ echo "Сообщение отправлено, теперь Вы можете перейти на главную страницу и продолжить чтение <a href='#'>dawdawdwa</a>";}
else {echo "Ошибка, сообщение не отправлено!";  }
  
}
else
{
echo "Вы заполнили не все поля, необходимо вернуться назад!";
}
?>


А как в него можно запихнуть хедер, футер, и изменить вид страницы в общем?
когда вставляю гет_хедер, оно почему-то выбивает ошибку.
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Что это за mail.php и где он лежит? Вы все делаете неправильно. В WordPress это делается не так.

1. Action формы сам на себя
2. На хук init вешаете обработчик
3. В обработчике проверяете $_POST, валидируете, возвращаете ошибки или отправляете письмо
4. Само письмо отправляйте с помощью wp_mail()

А еще можно и ajax'ом, по сути обработчик вешаете на wp_ajax_nopriv_myaction и сабмитите форму javascript'ом на него, результат возвращаете в json.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
trampick
@trampick
Веб-разработчик
$mes = "Имя: $name \nE-mail: $email \nТелефон: $phone \nТекст: $body";

Это как раз шаблон твоего сообщения, то что в кавычках надо изменить на html шаблон письма.

Далее тебе нужно указать правильно заголовок для отправки письма
$send = mail ($address,$phone,$mes,"Content-type:text/plain; charset = UTF-8\r\nFrom:$email");
заменить на 
$send = mail ($address,$phone,$mes,"Content-type:text/html; charset = UTF-8\r\nFrom:$email");


Нагуглил пример скрипта отправки, надо совместить с твоим кодом. Тут все легко и понятно.
<?php 
$to  = "Mary &lt;mary@example.com>, " ; 
$to .= "Kelly &lt;kelly@example.com>"; 

$subject = "Birthday Reminders for August"; 

$message = ' 
<html> 
    <head> 
        <title>Birthday Reminders for August</title> 
    </head> 
    <body> 
        <p>Here are the birthdays upcoming in August!</p> 
    </body> 
</html>'; 

$headers  = "Content-type: text/html; charset=windows-1251 \r\n"; 
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n"; 
$headers .= "Bcc: birthday-archive@example.com\r\n"; 

mail($to, $subject, $message, $headers); 
?>

на этом сайте
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы