За последние 24 часа нас посетили 18660 программистов и 1703 робота. Сейчас ищут 926 программистов ...

Не приходит письмо из формы обратной связи на сайте

Тема в разделе "Прочие вопросы по PHP", создана пользователем ATV, 6 фев 2013.

  1. ATV

    ATV Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    36
    Симпатии:
    0
    ОТЛИЧНО РАБОТАЕТ!!! СПАСИБО ВАМ БОЛЬШОЕ!!!
    поставил кодировку на почте в windows-1251 и в utf-8 - отображается везде корректно! Спасибо!!!

    Добавлено спустя 3 минуты 19 секунд:
    а что тут убрать, чтобы форма приходила в таком вот виде:
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну можно несколькими вариантами:
    #1
    Код (Text):
    1. $body = sprintf("<html><body><table>
    2. <tr><td>Имя</td><td>%s</td></tr>
    3. <tr><td>Телефон</td><td>%s</td></tr>
    4. <tr><td>E-Mail</td><td>%s</td></tr>
    5. <tr><td>Текст</td><td>%s</td></tr>
    6. </table></body></html>"
    #2
    Код (Text):
    1. $body = sprintf("<html><body>
    2. Имя: %s<br>
    3. Телефон: %s<br>
    4. E-Mail: %s<br>
    5. Текст: %s<br>
    6. </body></html>"
    #3
    Код (Text):
    1.  
    2. // ... //
    3. Content-Type: text/plain; charset=utf-8
    4. // ... //
    5. $body = sprintf("Имя: %s
    6. Телефон: %s
    7. E-Mail: %s
    8. Текст: %s"
    всех не перечислить
     
  3. ATV

    ATV Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    36
    Симпатии:
    0
    Спасибо большое вам за помощь!)

    Добавлено спустя 44 минуты 43 секунды:
    решил немного разнообразить форму отправки и вставил новое поле тега select:

    Код (Text):
    1.  
    2. <form action="send.php" method="POST" data-enhance="false">
    3.                 <div class="groupBox">
    4.                  
    5.                   <ul>
    6.                     <li>
    7.                         <input type="text" placeholder="Name" required name="contactName" id="contactName">
    8.                     </li>
    9.                     <li>
    10.                         <input type="email" placeholder="Email" required name="contactEmail" id="contactEmail">
    11.                     </li>
    12.                     <li>
    13.                         <input type="tel" placeholder="Phone" required name="contactPhone" id="contactPhone">
    14.                     </li>
    15.                     <li>
    16.                         <select required name="contactServices" placeholder="Service" id="contactServices">
    17.                     <option value=''></option>
    18.                     <option value='вариант 1'>вариант 1</option>
    19.                     <option value='вариант 2'>вариант 2</option>
    20.                     <option value='вариант 3'>вариант 3</option>
    21.                     <option value='вариант 4'>вариант 4</option>
    22.                     <option value='вариант 5'>вариант 5</option>
    23.                     </select>
    24.                     </li>
    25.                     <li>
    26.                         <textarea placeholder="Message" required name="contactMessage" id="contactMessage"></textarea>
    27.                     </li>
    28.                   </ul>
    29.                  
    30.                   <input type="submit" class="button buttonStrong right" value="Отправить" name="buttonSubmit" value="submit">
    31.                   <div class="clearfix"></div>
    32.                  
    33.                 </div>
    34.                 <!-- end group box -->
    35.               </form>
    и поменял файл отправки (send.php):

    Код (Text):
    1.  
    2. <?php
    3. $to = 'test@mail.ru';
    4. $subject = 'Письмо с мобильной версии сайта';
    5.  
    6. $name = isset( $_POST['contactName'] ) ? substr( $_POST['contactName'], 0, 64 ) : null;
    7. $email = isset( $_POST['contactEmail'] ) ? substr( $_POST['contactEmail'], 0, 64 ) : null;
    8. $phone = isset( $_POST['contactPhone'] ) ? substr( $_POST['contactPhone'], 0, 11 ) : null;
    9. $service = isset( $_POST['contactServices'] ) ? substr( $_POST['contactServices'], 0, 22 ) : null;
    10. $message = isset( $_POST['contactMessage'] ) ? substr( $_POST['contactMessage'], 0, 250 ) : null;
    11.  
    12. if( null !== $name && null !== $email && null !== $phone && null !== $message )
    13. {
    14.     $body = sprintf("<html><body>
    15. Имя: %s<br><br>
    16. Телефон: %s<br><br>
    17. E-Mail: %s<br><br>
    18. Услуга: %s<br><br>
    19. Текст: %s<br>
    20. </body></html>"
    21.             ,   htmlspecialchars( $name )
    22.             ,   htmlspecialchars( $phone )
    23.             ,   htmlspecialchars( $email )
    24.             ,   nl2br( htmlspecialchars( $message ) )
    25.         );
    26.     $headers = <<<HDRS
    27. From: <mobile.site.ru>
    28. Return-path: <{$email}>
    29. MIME-Version: 1.0
    30. Content-Transfer-Encoding: 8bit
    31. Content-Type: text/html; charset=utf-8
    32. HDRS;
    33.  
    34.     var_dump($to, $subject, $body, $headers, $_POST, mail($to, $subject, $body, $headers));
    35. }
    36. ?>
    и в итоге пришло "пустое" письмо вообще безо всего, ни заполненных полей, ни того что здесь есть:
    ... совершенно пустая форма.

    Подскажите, в чем ошибка и где она??? И что надо вставить еще чтобы форма приходила полностью отображаемой мне на почту
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    хм, я думал вы застеснялись и только в личку написали.
    продублирую тады свое исходящее ЛС
     
  5. ATV

    ATV Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    36
    Симпатии:
    0
    в каком журнале???
     
  6. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    в мурзилке.

    , htmlspecialchars( $name )
    , htmlspecialchars( $phone )
    , htmlspecialchars( $email )
    , htmlspecialchars( $service )
    , nl2br( htmlspecialchars( $message ) )

    между двумя синими строчками нужно добавить одну зеленую.
     
  7. ATV

    ATV Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    36
    Симпатии:
    0
    да да... нашел уже и исправил... спасибо!
     
  8. cellse

    cellse Активный пользователь

    С нами с:
    14 апр 2012
    Сообщения:
    2
    Симпатии:
    0
    iconv вам в помощь и в гугл
     
  9. ATV

    ATV Активный пользователь

    С нами с:
    6 фев 2013
    Сообщения:
    36
    Симпатии:
    0
    мне уже помогли)

    пробовал iconv... не помогло.