@R4R3-M37

Почему данные не отправляются на почту?

Не отправляет данные на почту, но код пересылает на страницу index.html. Пробовал на бесплатном хостинге от таймвеба, может в нем дело?
PHP
<?php
/* Здесь проверяется существование переменных */
if (isset($_POST['name'])) {$phone = $_POST['name'];}
if (isset($_POST['phone'])) {$name = $_POST['phone'];}

/* Сюда впишите свою эл. почту */
$myaddres  = "test@yandex.ru"; // кому отправляем

/* А здесь прописывается текст сообщения, \n - перенос строки */
$mes = "Тема: Заказ обратного звонка!\nТелефон: $phone\nИмя: $name";

/* А эта функция как раз занимается отправкой письма на указанный вами email */
$sub='Заказ'; //сабж
$email='Заказ обратного звонка'; // от кого
$send = mail ($myaddres,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");

ini_set('short_open_tag', 'On');
header('Refresh: 3; URL=index.html');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="refresh" content="3; url=index.html">
    <title>Спасибо! Мы свяжемся с вами!</title>
    <meta name="generator">
    <script type="text/javascript">
        setTimeout('location.replace("/index.html")', 3000);
        /*Изменить текущий адрес страницы через 3 секунды (3000 миллисекунд)*/
    </script>
</head>
<body>
<h1>Спасибо! Мы свяжемся с вами!</h1>
</body>
</html>


HTML
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<form action="send.php" method="POST">
    <input type="text" name="name" placeholder="Ваше имя">
    <input type="text" name="phone" placeholder="Ваш телефон">
    <input type="submit" class="btn" >
</form>
</body>
</html>
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
ini_set на бесплатных хостингах не всегда работает, точнее чаще всего не работает, или работает только с определенными безопасными параметрами.

но код пересылает на страницу index.html
Так а почему не должен, у вас же там редирект безусловный, вы в любом случае туда переходите, не зависимо от успеха вышеописанного кода...

Не отправляет данные на почту
Во первых вы даже не проверяете результат выполнения mail(), во вторых - вполне возможно что на бесплатных хостингах работать не будет, или будет работать ограничено, ну и в третьих, возможно у вас ошибка, которую вы не видите. Надо либо смотреть логи ошибок (если они доступны), либо включить вывод ошибок и предупреждений.

Идеальным выходом из ситуации конечно же является использование нормального мэйлера, нарпимер PHPMailer или swiftMailer, что гораздо проще и удобнее.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Kvason
Веб-разработчик
Какая проблема погуглить? У твоего проекта нет почтового аккаунта, на бесплатном хостинге такой услуги может не быть, если тебе надо отправлять письма то используй phpmailer, он безопаснее и более предпочтительный и тебе нужен хостинг с услугой почтового домена
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы