За последние 24 часа нас посетили 16824 программиста и 1635 роботов. Сейчас ищут 938 программистов ...

Проблема с формой обратной связи

Тема в разделе "Прочие вопросы по PHP", создана пользователем levitan, 7 авг 2014.

  1. levitan

    levitan Новичок

    С нами с:
    24 июл 2014
    Сообщения:
    8
    Симпатии:
    0
    Добрый день, Уважаемые специалисты! Не высылается сообщение при отправке из формы обратной связи.
    Код формы:
    Код (Text):
    1. <?php
    2. if (isset($_POST['name'])) {$name = $_POST['name'];}
    3. if (isset($_POST['email'])) {$email = $_POST['email'];}
    4. if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    5. if (isset($_POST['message'])) {$message = $_POST['message'];}
    6.  
    7. $address = 'info@nepal.by';
    8. $sub = "Сообщение из nepal.by от пользователя";
    9. $mes = "Пользователь назвался: $name \nУказал свой адрес: $email \nУказал свой телефон: $phone \nСодержание письма: $message";
    10. $verify = mail($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");
    11. if ($verify == 'true')
    12. {
    13. $URL = "http://nepal.by/vashe-soobschenie-otpravleno/";
    14. header("Location:$URL");
    15. }
    16. else
    17. {
    18. echo '<p>Сообщение не отправлено</p>';
    19. }
    20. ?>
    Вставлен в статью так:
    Код (Text):
    1. <p>
    2.     <span style="font-size: 12pt; font-family: tahoma, arial, helvetica, sans-serif;">Отправьте нам свой запрос или сообщение, заполнив данную форму. Мы оперативно свяжемся с Вами.</span></p>
    3. <div class="box visible" style="display: block;">
    4.     <form action="/templates/yoo_corona/send.php" method="post" name="f1" style="width: 400px; margin: 0 auto;">
    5.         <fieldset>
    6.             <legend></legend>
    7.             <p>
    8.                 <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;">Ваше имя: </span><br />
    9.                 <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;"> <input name="name" type="text" /></span></p>
    10.             <p>
    11.                 <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;">Ваш e-mail: </span><br />
    12.                 <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;"> <input name="email" type="text" /></span></p>
    13.             <p>
    14.                 <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;">номер телефона (пожалуйста, укажите код оператора связи): </span><br />
    15.                 <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;"> <input name="phone" type="text" /></span></p>
    16.             <p>
    17.                 <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;">Текст Вашего сообщения: </span><br />
    18.                 <span style="font-family: tahoma, arial, helvetica, sans-serif;"><textarea cols="30" name="message" rows="5"></textarea></span><br />
    19.                 <br />
    20.                 <span style="font-family: tahoma, arial, helvetica, sans-serif;"> <input type="submit" value="Отправить сообщение" /></span></p>
    21.         </fieldset>
    22.     </form>
    23. </div>
    Помогите решить проблему, заранее спасибо!

    Добавлено спустя 13 минут 44 секунды:
    При отправке на старой версии сайта, не перенаправляет на страницу - Сообщение отправлено, а выдает страницу с надписью Сообщение РЅРµ отправлено
     
  2. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Код (Text):
    1. if ($verify == 'true')
    Кто ж вас всех так учит делать :( В остальном вроде ничего выглядит. Проверяли почту? Действительно письма не приходят?
     
  3. levitan

    levitan Новичок

    С нами с:
    24 июл 2014
    Сообщения:
    8
    Симпатии:
    0
    Да, проверял, не приходят.
    Код (Text):
    1. if ($verify == 'true')
    - С этим кодом что-то не так?
    Форма уже была написана, обновлял движок сайта, перестала работать(
     
  4. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Как минимум то, что функция mail возвращает true или false (булевы значения), а вы сравниваете со строкой 'true'. Естественно, ваш if никогда не выполнится, каков бы ни был результат работы функции.
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Попоfffffff

    Для проверки на истинность достаточно писать
    Код (Text):
    1. if ($verify)
    ибо любое выражение в if приводится к true или false, которые являются константами и применяются без кавычек.
     
  6. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Может у вас mail на хостинге запрещён?
    Подставьте такой код, покажите, что выводит:
    Код (Text):
    1.  
    2. die(var_export(mail($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email")));
     
  7. levitan

    levitan Новичок

    С нами с:
    24 июл 2014
    Сообщения:
    8
    Симпатии:
    0
    Ничего не выводит.
    После отправки формы выдает ошибку 404.
    Вот сайт: http://nepal.by/soobschenie
    Файл - send.php - лежит по верному пути
     
  8. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ну из-за die он давать 404-ю не должен.... Киньте скрипт с каким-нибудь элементарным вызовом mail в корень сайта, и посмотрите, что за результат. Типа
    Код (Text):
    1.  
    2. var_export(mail("mmm@mmm.mmm", "Stupid test", "stupid message", "From: aaa@example.com\r\n"));
    Адреса замените на нормальные
     
  9. levitan

    levitan Новичок

    С нами с:
    24 июл 2014
    Сообщения:
    8
    Симпатии:
    0
    Сама форма рабочая, дело в том, что по этому пути он не хочет открывать файл send.php (физически он лежит по этому пути).
    Любой другой файл лежащий в этой директории открывается
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    А в браузере открывается /templates/yoo_corona/send.php? Мб там права на директорию или htaccess которые запрещают загрузку файлов из этих директорий.
     
  11. levitan

    levitan Новичок

    С нами с:
    24 июл 2014
    Сообщения:
    8
    Симпатии:
    0
    Дело в том, что send.php единственный который не открывается в браузере, другие файлы загружаются без проблем, в том числе и с php расширением.

    Добавлено спустя 26 минут 22 секунды:
    htaccess правил для добавления / в конце адреса.
    Код (Text):
    1. #
    2. RewriteBase /
    3. RewriteCond %{REQUEST_FILENAME} !-f
    4. RewriteCond %{REQUEST_URI} !(.*)/$
    5. RewriteRule ^(.*[^/])$ $1/ [L,R=301]
    6. RewriteCond %{REQUEST_FILENAME} !-d
    7. RewriteCond %{REQUEST_URI} !/administrator/
    8. RewriteCond %{REQUEST_URI} !^/index.php
    9. RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
    10. RewriteRule (.*) index.php
    11. RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
    12. #
    Может быть проблема в этом?
     
  12. levitan

    levitan Новичок

    С нами с:
    24 июл 2014
    Сообщения:
    8
    Симпатии:
    0
    Очистил htaccess, проблема осталась

    Добавлено спустя 14 минут 45 секунд:
    В строке RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
    Убрал php -форма заработала