Добрый день, Уважаемые специалисты! Не высылается сообщение при отправке из формы обратной связи. Код формы: Код (Text): <?php if (isset($_POST['name'])) {$name = $_POST['name'];} if (isset($_POST['email'])) {$email = $_POST['email'];} if (isset($_POST['phone'])) {$phone = $_POST['phone'];} if (isset($_POST['message'])) {$message = $_POST['message'];} $address = 'info@nepal.by'; $sub = "Сообщение из nepal.by от пользователя"; $mes = "Пользователь назвался: $name \nУказал свой адрес: $email \nУказал свой телефон: $phone \nСодержание письма: $message"; $verify = mail($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email"); if ($verify == 'true') { $URL = "http://nepal.by/vashe-soobschenie-otpravleno/"; header("Location:$URL"); } else { echo '<p>Сообщение не отправлено</p>'; } ?> Вставлен в статью так: Код (Text): <p> <span style="font-size: 12pt; font-family: tahoma, arial, helvetica, sans-serif;">Отправьте нам свой запрос или сообщение, заполнив данную форму. Мы оперативно свяжемся с Вами.</span></p> <div class="box visible" style="display: block;"> <form action="/templates/yoo_corona/send.php" method="post" name="f1" style="width: 400px; margin: 0 auto;"> <fieldset> <legend></legend> <p> <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;">Ваше имя: </span><br /> <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;"> <input name="name" type="text" /></span></p> <p> <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;">Ваш e-mail: </span><br /> <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;"> <input name="email" type="text" /></span></p> <p> <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;">номер телефона (пожалуйста, укажите код оператора связи): </span><br /> <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;"> <input name="phone" type="text" /></span></p> <p> <span style="font-family: tahoma, arial, helvetica, sans-serif; font-size: 10pt;">Текст Вашего сообщения: </span><br /> <span style="font-family: tahoma, arial, helvetica, sans-serif;"><textarea cols="30" name="message" rows="5"></textarea></span><br /> <br /> <span style="font-family: tahoma, arial, helvetica, sans-serif;"> <input type="submit" value="Отправить сообщение" /></span></p> </fieldset> </form> </div> Помогите решить проблему, заранее спасибо! Добавлено спустя 13 минут 44 секунды: При отправке на старой версии сайта, не перенаправляет на страницу - Сообщение отправлено, а выдает страницу с надписью Сообщение РЅРµ отправлено
Код (Text): if ($verify == 'true') Кто ж вас всех так учит делать В остальном вроде ничего выглядит. Проверяли почту? Действительно письма не приходят?
Да, проверял, не приходят. Код (Text): if ($verify == 'true') - С этим кодом что-то не так? Форма уже была написана, обновлял движок сайта, перестала работать(
Как минимум то, что функция mail возвращает true или false (булевы значения), а вы сравниваете со строкой 'true'. Естественно, ваш if никогда не выполнится, каков бы ни был результат работы функции.
Попоfffffff Для проверки на истинность достаточно писать Код (Text): if ($verify) ибо любое выражение в if приводится к true или false, которые являются константами и применяются без кавычек.
Может у вас mail на хостинге запрещён? Подставьте такой код, покажите, что выводит: Код (Text): die(var_export(mail($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email")));
Ничего не выводит. После отправки формы выдает ошибку 404. Вот сайт: http://nepal.by/soobschenie Файл - send.php - лежит по верному пути
Ну из-за die он давать 404-ю не должен.... Киньте скрипт с каким-нибудь элементарным вызовом mail в корень сайта, и посмотрите, что за результат. Типа Код (Text): var_export(mail("mmm@mmm.mmm", "Stupid test", "stupid message", "From: aaa@example.com\r\n")); Адреса замените на нормальные
Сама форма рабочая, дело в том, что по этому пути он не хочет открывать файл send.php (физически он лежит по этому пути). Любой другой файл лежащий в этой директории открывается
А в браузере открывается /templates/yoo_corona/send.php? Мб там права на директорию или htaccess которые запрещают загрузку файлов из этих директорий.
Дело в том, что send.php единственный который не открывается в браузере, другие файлы загружаются без проблем, в том числе и с php расширением. Добавлено спустя 26 минут 22 секунды: htaccess правил для добавления / в конце адреса. Код (Text): # RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/ [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !/administrator/ RewriteCond %{REQUEST_URI} !^/index.php RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC] RewriteRule (.*) index.php RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] # Может быть проблема в этом?
Очистил htaccess, проблема осталась Добавлено спустя 14 минут 45 секунд: В строке RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC] Убрал php -форма заработала