За последние 24 часа нас посетили 17558 программистов и 1310 роботов. Сейчас ищут 990 программистов ...

Помогите прошу. PHP форма не отправляет

Тема в разделе "Работа с почтой", создана пользователем Georka, 19 окт 2014.

  1. Georka

    Georka Новичок

    С нами с:
    19 окт 2014
    Сообщения:
    8
    Симпатии:
    0
    Ребят. Всем привет.
    В итоге ситуация такая.
    вот мой сайт: http://remkachestvo.ru

    У меня на сайте 2 формы.
    1) order.php Форма заявки
    2) send.php Форма обратной связи

    Вроде как написал их правильно.
    Но, сообщения приходят с вероятностью 15%.
    И то если приходят то через минут 20.
    Что делать? помогите.

    Вот форма заявки:
    Код (Text):
    1. <?php
    2. if (isset($_POST['name'])) {$name = $_POST['name'];}
    3. if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    4. if (isset($_POST['after'])) {$after = $_POST['after'];}
    5. if (isset($_POST['before'])) {$before = $_POST['before'];}
    6. if (isset($_POST['work'])) {$work = $_POST['work'];}
    7. if (isset($_POST['email'])) {$email = $_POST['email'];}
    8. if (isset($_POST['quest'])) {$quest = $_POST['quest'];}
    9.  
    10. $to = "remkachestvo@mail.ru";
    11. $headers = "Content-type: text/html;charset=utf-8 \r\nFrom:$email";
    12. $subject = "Заявка с сайта «RemKachestvo.Ru»";
    13. $message = "<p>Заявка с сайта «RemKachestvo.Ru»</p>
    14. \n<p><strong>Имя:</strong> $name</p>
    15. \n<p><strong>Тел:</strong> $phone</p>
    16. \n<p><strong>Дата начала работы:</strong> $after</p>
    17. \n<p><strong>Дата окончания работы:</strong> $before</p>
    18. \n<p><strong>Нужная услуга:</strong> $work</p>
    19. \n<p><strong>E-mail:</strong> $email</p>
    20. \n<p><strong>Вопрос:</strong> $quest</p>";
    21. $send = mail ($to, $subject, $message, $headers);
    22.   header( "Location: http://remkachestvo.ru/send.html" );
    23. ?>
    Вот форма обратной связи:
    Код (Text):
    1. <?php
    2. if (isset($_POST['name'])) {$name = $_POST['name'];}
    3. if (isset($_POST['email'])) {$email = $_POST['email'];}
    4. if (isset($_POST['quest'])) {$quest = $_POST['quest'];}
    5.  
    6. $to = "remkachestvo@mail.ru";
    7. $headers = "Content-type: text/html;charset=utf-8 \r\nFrom:$email";
    8. $subject = "Заявка с сайта «RemKachestvo.Ru»";
    9. $message = "<p>Сообщение от « RemKachestvo.Ru »</p>
    10. \n<p><strong>Имя:</strong> $name</p>
    11. \n<p><strong>Email:</strong> $email</p>
    12. \n<p><strong>Вопрос:</strong> $quest</p>";
    13. $send = mail ($to, $subject, $message, $headers);
    14.   header( "Location: http://remkachestvo.ru/send.html" );
    15. ?>
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    формы сюда исходниками, а не архивом.

    по теме - раз приходит значит все работает.
    если через 20 минут то это больше похоже на попадание в серый список вашего почтового транслятора - его не любят.
    а вероятность 15% это скорее всего вообще ваш почтовый транслятор признается спамом-источником.
     
  3. Georka

    Georka Новичок

    С нами с:
    19 окт 2014
    Сообщения:
    8
    Симпатии:
    0
    выложил формы. Скажите где ошибка?

    Добавлено спустя 51 секунду:
    выложил формы. Скажите где ошибка?

    Добавлено спустя 1 минуту 3 секунды:
    И что мне теперь делать? как исправить это?
    Дайте дельный совет. Прошу.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    логические ошибки есть вроде необъявленных переменных:
    Код (Text):
    1. if (isset($_POST['name'])) {$name = $_POST['name'];}
    2. if (isset($_POST['email'])) {$email = $_POST['email'];}
    3. if (isset($_POST['quest'])) {$quest = $_POST['quest'];}
    - я могу ничего не вводить и письмо все равно уйдет

    Код (Text):
    1. From:$email
    - на месте почтового сервера я бы не отправлял такие письма потому что они не от его имени.

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

    в остальном вроде текст письма не должен сильно надоедать вашему спам-фильтру. ну или обучите его, что вся почта приходящая с сайта это не спам.
     
  5. Georka

    Georka Новичок

    С нами с:
    19 окт 2014
    Сообщения:
    8
    Симпатии:
    0
    Как?
    Прошу посоветуйте что вписать..
    я новичек. прошу.
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    вы посмотрите пока по этому разделу форума - достаточно частое явление и постоянно одно и то же повторять не хочется.
    если возникнут сложности - пишите, обязательно направим ваши мысли в нужное русло.
     
  7. Georka

    Georka Новичок

    С нами с:
    19 окт 2014
    Сообщения:
    8
    Симпатии:
    0
    не могу. Пожалуйста помоги а. Что мне написать? просто добавь. напиши какой должен быть код. Прошу
     
  8. Georka

    Georka Новичок

    С нами с:
    19 окт 2014
    Сообщения:
    8
    Симпатии:
    0
    Сделал вот так:
    Код (Text):
    1. <?php
    2. $name = $_REQUEST['name'];
    3. $phone = $_REQUEST['phone'];
    4. $after = $_REQUEST['after'];
    5. $before = $_REQUEST['before'];
    6. $work = $_REQUEST['work'];
    7. $email = $_REQUEST['email'];
    8. $quest = $_REQUEST['quest'];
    9. $headers= "MIME-Version: 1.0\r\n";
    10. $headers .= "Content-type: text/html;charset=utf-8 \r\nFrom:$email";
    11.  
    12. $message = "<p>Заявка с сайта «RemKachestvo.Ru»</p>
    13. \n<p><strong>Имя:</strong> $name</p>
    14. \n<p><strong>Тел:</strong> $phone</p>
    15. \n<p><strong>Дата начала работы:</strong> $after</p>
    16. \n<p><strong>Дата окончания работы:</strong> $before</p>
    17. \n<p><strong>Нужная услуга:</strong> $work</p>
    18. \n<p><strong>E-mail:</strong> $email</p>
    19. \n<p><strong>Вопрос:</strong> $quest</p>";
    20.  
    21. mail( "remkachestvo@mail.ru", "RemKachestvo.Ru",
    22.     $message, $headers );
    23.   header( "Location: http://remkachestvo.ru/send.html" );
    24. ?>
    И вроде как нормально работает..
    Вот только теперь сообщения приходят сразу но не всегда.
    Тоесть как я понял не все отсылаются...
    Как это исправить?

    Добавлено спустя 4 минуты 14 секунд:
    Может ли это быть из-за того что у меня метод POST ??
    У меня вот так сейчас:
    <form action="/order.php" method="post" id="contact-form">
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    какой минимальный набор полей для каждого из двух типов писем должен быть заполнен?