За последние 24 часа нас посетил 22291 программист и 1028 роботов. Сейчас ищут 710 программистов ...

Проблема с отправкой e-mail. Помогите!!

Тема в разделе "PHP для новичков", создана пользователем Muhammet, 15 ноя 2017.

  1. Muhammet

    Muhammet Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    есть скрипт отправки имейла в указанную почту. форма и сам скрипт на отдельных файлах. написанное в форме письмо не отправляется, еще при отправке данных с формы на секунду загружается action файл (action="send.php") файлы прилагаю. помогите плиз
     

    Вложения:

    • my_project.zip
      Размер файла:
      1,7 КБ
      Просмотров:
      2
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    разве так сложно выложить сюда?
    form.php
    HTML:
    1. <form id="form" method="post" action="send.php">
    2.     <h2 id="modal1Title">Оставьте ваши контактные данные и наш консультант свяжется <br>с вами</h2>
    3.     <input type="text" class="putName" name="name" placeholder="Ваше ваше имя" required>
    4.     <input name="phone" type="tel" class="putPhone" placeholder="Введите номер телефона" required>
    5.     <input name="e-mail" class="putE-mail" placeholder="Введите вашу почту" required>
    6.     <input type="text" class="putMail" name="mail" placeholder="Ваше сообщение" required>
    7.     <input type="submit" name="submit" class="btn" value="ОТПРАВИТЬ">
    8.     <input type="hidden" name="formData" value="Заявка с сайта">
    9. </form>
    send.php
    PHP:
    1. <?
    2. if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")&&(isset($_POST['e-mail'])&&$_POST['e-mail']!="")&&(isset($_POST['mail'])&&$_POST['mail']!="")){ //Проверка отправилось ли наше поля name и не пустые ли они
    3.     $to = 'nurik_mary@mail.ru'; //Почта получателя, через запятую можно указать сколько угодно адресов
    4.     $subject = 'Обратный звонок'; //Загаловок сообщения
    5.     $message = '
    6.                <html>
    7.                    <head>
    8.                        <title>'.$subject.'</title>
    9.                    </head>
    10.                    <body>
    11.                        <p>Имя: '.$_POST['name'].'</p>
    12.                        <p>Телефон: '.$_POST['phone'].'</p>
    13.                        <p>Почта: '.$_POST['e-mail'].'</p>
    14.                        <p>Сообщение: '.$_POST['mail'].'</p>
    15.                    </body>
    16.                </html>'; //Текст нащего сообщения можно использовать HTML теги
    17.     $headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
    18.     $headers .= "From: Отправитель <from@example.com>\r\n"; //Наименование и почта отправителя
    19.     mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
    20.  
    21.     echo '<script>document.location.href="index.php"</script>';
    22. }
    23. ?>
    script.js
    Код (Javascript):
    1. $(document).ready(function(){
    2.         $(window).scroll(function () {if ($(this).scrollTop() > 0) {$('#scroller').fadeIn();} else {$('#scroller').fadeOut();}});
    3.         $('#scroller').click(function () {$('body,html').animate({scrollTop: 0}, 400); return false;});
    4.     });
    5.  
    6.  
    7.  
    8.     $(document).ready(function(){
    9.         $("#form").submit(function() { //устанавливаем событие отправки для формы с id=form
    10.             var form_data = $(this).serialize(); //собераем все данные из формы
    11.             $.ajax({
    12.                 type: "POST", //Метод отправки
    13.                 url: "send.php", //путь до php фаила отправителя
    14.                 data: form_data,
    15.                 success: function() {
    16.                     //код в этом блоке выполняется при успешной отправке сообщения
    17.                     alert("Ваше сообщение отпрвлено!");
    18.                 }
    19.             });
    20.         });
    21.     });
     
  3. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    так не надо
    HTML:
    1. <form id="form" method="post" action="send.php">
    надо так
    HTML:
    1. <form id="form" method="post" action="/send.php">
    такие пути от корня сайта надо указывать, начиная со слеша.


    шорттаги <? больше не поддерживаются. надо использовать длинные <?php

    PHP:
    1. <?php
    2. if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")&&(isset($_POST['e-mail'])&&$_POST['e-mail']!="")&&(isset($_POST['mail'])&&$_POST['mail']!="")){ //Проверка отправилось ли наше поля name и не пустые ли они
    3.     $to = 'nurik_mary@mail.ru'; //Почта получателя, через запятую можно указать сколько угодно адресов
    4.     $subject = 'Обратный звонок'; //Загаловок сообщения
    5.     $message = '
    6.                <html>
    7.                    <head>
    8.                        <title>'.$subject.'</title>
    9.                    </head>
    10.                    <body>
    11.                        <p>Имя: '.$_POST['name'].'</p>
    12.                        <p>Телефон: '.$_POST['phone'].'</p>
    13.                        <p>Почта: '.$_POST['e-mail'].'</p>
    14.                        <p>Сообщение: '.$_POST['mail'].'</p>
    15.                    </body>
    16.                </html>'; //Текст нащего сообщения можно использовать HTML теги
    17.     $headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
    18.     $headers .= "From: Отправитель <from@example.com>\r\n"; //Наименование и почта отправителя
    19.     mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
    20.  
    21.     echo '<script>document.location.href="index.php"</script>';
    22. } else {
    23.    echo 'что-то не так';
    24. }
    попробуй так.
     
  4. Muhammet

    Muhammet Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    сделал. send.php не загрузилось, а письмо так и не дошло до указанного адреса
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
  6. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    письмо может и не дойдёт. ты не торопись. главное - получить ответное сообщение от send.php.
    а почта может не уходить по многим причинам, с ними потом разбираться будем.
     
  7. Muhammet

    Muhammet Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    переписал все от точечки до точечки..... пока мессаге не идет ))
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    забей на мессагу. вообще можешь удалить строчку с отправкой.

    ты должен получить сообщение либо об ошибке, либо об удачной отправке.
    используй МОЙ код, а не своё это вот.
     
  9. Muhammet

    Muhammet Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    10
    Симпатии:
    0

    получил сообщение об удачной отправке, потом после нажаитя на ок перенаправляет на send.php
     

    Вложения:

  10. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    это не сообщение об удачной отправке. это сообщение о том, что браузер сходит аяксом по урлу и получил там код 200 и какой-то ответ. Ответ ты не знаешь. Поэтому первым делом выведи себе ответ, чтобы знать:

    Код (Javascript):
    1.             $.ajax({
    2.                 type: "POST", //Метод отправки
    3.                 url: "send.php", //путь до php фаила отправителя
    4.                 data: form_data,
    5.                 success: function(reply) {
    6.                     //код в этом блоке выполняется при успешной отправке сообщения
    7.                     alert("Ответ сервера: " + reply);
    8.                 }
    9.             });
    ещё: исправь
    Код (Javascript):
    1.  url: "send.php", //путь до php фаила отправителя
    на
    Код (Javascript):
    1.  url: "/send.php", //путь до php фаила отправителя
    путь от корня!
     
  11. Muhammet

    Muhammet Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
     

    Вложения:

  12. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    переведи ошибку
     
  13. Muhammet

    Muhammet Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    устал уже с этим кодом.....помоги пож(
    внизу справа картинки ошибка такая...

    и еще, надо ли указывать в теге формы action="send.php" ? или все тки оставить пустым. просто видел где-то с подобным кодом акшн оставляется пустым ну чтоб не перезагружалась страница. а js файле указываем url к нему
     

    Вложения:

  14. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Увидеть-увидел, но недопонял, однако.
    Если в форме не указан атрибут action, но есть input или button type="submit" - страница будет перезагружаться... только откроется эта-же форма... и при попытке обновить страницу получите повторную отправку данных...
    Но если при обработке данных выполнено перенаправление... (пусть на ту-же страницу) - повторной отправки данных не будет.
    А если js обрабатывает нажатие кнопки подтверждения отправки данных, или событие submit формы - то в этом случае всё зависит от js-обработчика...
    --- Добавлено ---
    А на скрине ошибка о том, что ресурс send.php не найден....
     
  15. Muhammet

    Muhammet Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    action оставил пустым, ошибка исчезла, алерт "успешно" вылез, НО сообщение на указанную почту не ушла и модальное окно с формой осталась открытой (форма на модальном окне), хотя я сделал перенаправление в send.php
    echo '<script>document.location.href="index.php"</script>'

    вот весь код:

    form.php
    HTML:
    1.  
    2. <!-- Modal -->
    3.  
    4.  
    5. <div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    6.     <div class="modal-dialog">
    7.         <div class="modal-content">
    8.  
    9.  
    10.             <div class="modal-body">
    11.                 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
    12.  
    13.                 <form id="form" method="POST" action="">
    14.                     <h2 id="modal1Title">Оставьте ваши контактные данные и наш консультант свяжется <br>с вами</h2>
    15.                     <input name="name" type="text" class="putName"  placeholder="Ваше ваше имя" required>
    16.                     <input name="phone" type="tel" class="putPhone" placeholder="Введите номер телефона" required>
    17.                     <input name="e-mail" class="putE-mail" placeholder="Введите вашу почту" required>
    18.                     <input name="mail" type="text" class="putMail" placeholder="Ваше сообщение" required>
    19.                     <input name="submit" type="submit"  class="btn" value="ОТПРАВИТЬ">
    20.                     <input type="hidden" name="formData" value="Заявка с сайта">
    21.                 </form>
    22.  
    23.  
    24.             </div><!-- End of Modal body -->
    25.         </div><!-- End of Modal content -->
    26.     </div><!-- End of Modal dialog -->
    27. </div><!-- End of Modal -->
    script.js
    Код (Javascript):
    1. $(document).ready(function(){
    2.     $("#form").submit(function() {
    3.         var form_data = $(this).serialize();
    4.         $.ajax({
    5.             type: "POST",
    6.             url: "send.php",
    7.             data: form_data,
    8.             success: function () {
    9.                 alert('Успешно');
    10.             },
    11.             error: function () {
    12.                 alert('возникла ошибка');
    13.             }
    14.         });
    15.         return false;
    16.     });
    17. });
    send.php
    PHP:
    1. <?php
    2.  
    3. if((isset($_POST['name'])&&$_POST['name']!="")&&(isset($_POST['phone'])&&$_POST['phone']!="")&&(isset($_POST['e-mail'])&&$_POST['e-mail']!="")&&(isset($_POST['mail'])&&$_POST['mail']!="")){ //Проверка отправилось ли наше поля name и не пустые ли они
    4.     $to = 'nurik_mary@mail.ru'; //Почта получателя, через запятую можно указать сколько угодно адресов
    5.     $subject = 'Обратный звонок'; //Загаловок сообщения
    6.     $message = '
    7.               <html>
    8.                   <head>
    9.                       <title>'.$subject.'</title>
    10.                   </head>
    11.                   <body>
    12.                       <p>Имя: '.$_POST['name'].'</p>
    13.                       <p>Телефон: '.$_POST['phone'].'</p>
    14.                       <p>Почта: '.$_POST['e-mail'].'</p>
    15.                       <p>Сообщение: '.$_POST['mail'].'</p>
    16.                   </body>
    17.               </html>'; //Текст нащего сообщения можно использовать HTML теги
    18.     $headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
    19.     $headers .= "From: Отправитель: from@example.com\r\n"; //Наименование и почта отправителя
    20.     mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail   echo '<script>document.location.href="index.php"</script>'    
    21.  
    22. }
    23. ?>;
     
  16. Muhammet

    Muhammet Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    вот это url:"send.php" исправил на это url:"../send.php", теперь уже выдает ошибку!
     
  17. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    исправил - хорошо.
    какую ошибку?
     
  18. Muhammet

    Muhammet Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
     

    Вложения:

  19. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    консоль разработчика в браузере открывай, вкладка network, кликаешь, запрос уходит - смотришь ответ, код ответа, чешешь репу, кидаешь сюда :D вперед! Я в тебя верю, у тебя получится.
     
  20. Muhammet

    Muhammet Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    =DDDDD) никогда не занимался программированием)))))))........просто чтоб вы знали) на всякий случай :D:D:D, щас посмотрю)
    --- Добавлено ---
    Безымянный.png
     
  21. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    @Muhammet, ну нельзя же настолько нифига не знать и настолько бездумно копировать отсюда код... в твоём случае, с твоим расположением сайта, путь от корня до send.php будет /my_project/send.php. А вообще приучай себя под каждый проект делать локальный домен (в файлике host прописывать то есть). Всякие там Open Server это из коробки умеют, мне и ручками не сложно.
     
  22. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    сайт не должен жить в папке