Добрый день, уважаемы программисты! В программировании я полный ноль. Поэтому обращаюсь к вам с просьбой ткнуть носом где и что дописать в двух файлах: mail.php и script.js По утверждению автора этих файлов, после отправки письма через форму обратной связи, вот по этой инструкции https://mobiriz.store/help-12.html, я должен попадать на страницу success.html Письмо отправляется, на почту приходит, но я попадаю на страницу mail.php , и висю там, как висюлька волшебная ((( Я так понимаю, надо в mail.php прописать редирект с mail.php на success.html Подскажите, люди добрые, как это прописать.. Буду очень признателен. Техподдержка mobirise на письма не отвечает. Вся надежда на ваш богатый опыт) Заранее благодарен! Вот файл mail.php <?php $method = $_SERVER['REQUEST_METHOD']; //Script Foreach $c = true; if ( $method === 'POST' ) { $project_name = trim($_POST["project_name"]); $admin_email = trim($_POST["admin_email"]); $form_subject = trim($_POST["form_subject"]); foreach ( $_POST as $key => $value ) { if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) { $message .= " " . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . " <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td> <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td> </tr> "; } } } else if ( $method === 'GET' ) { $project_name = trim($_GET["project_name"]); $admin_email = trim($_GET["admin_email"]); $form_subject = trim($_GET["form_subject"]); foreach ( $_GET as $key => $value ) { if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) { $message .= " " . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . " <td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td> <td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td> </tr> "; } } } $message = "<table style='width: 100%;'>$message</table>"; function adopt($text) { return '=?UTF-8?B?'.Base64_encode($text).'?='; } $headers = "MIME-Version: 1.0" . PHP_EOL . "Content-Type: text/html; charset=utf-8" . PHP_EOL . 'From: '.adopt($project_name).' <'.$admin_email.'>' . PHP_EOL . 'Reply-To: '.$admin_email.'' . PHP_EOL; mail($admin_email, adopt($form_subject), $message, $headers ); Вот файл script.js $(document).ready(function() { //E-mail Ajax Send $("form").submit(function() { //Change var th = $(this); $.ajax({ type: "POST", url: "mail.php", //Change data: th.serialize() }).done(function() { document.getElementById('box').style.display = 'block'; setTimeout(function() { // Done Functions th.trigger("reset"); document.getElementById('box').style.display = 'none'; }, 5000); }); return false; }); });
@Nickolay обрамляйте код </>, в вархиве предложенном вашими Мобиризе нет файла success.html, ни в js-скрипте предложенном вами ни в php нет никакого упоминания о нем. Создайте файл и попробуйте запустить, если ничего не произойдет, то нужно добавить строчку в скрипт будет
Добрый день, благодарю за ответ. Пустой файл success.html я создавал. Закидывал в папку с mail.php и js-скриптом. Ничего не получается. Разработчики не только не дописали код, но и как вы заметили, забыли прикрепить к архиву файл success.html. Ни в первом, ни во втором архиве из инструкции, файла success.html нет. Я написал им об этом, они отмалчиваются, как рыбы об лёд. Файл success.html <!DOCTYPE html> <html> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <title>WICart</title> <meta name="viewport" content="width=360, initial-scale=1, maximum-scale=1, user-scalable=no" /> <link rel="stylesheet" href="assets/wicart/style.css"> <link rel="stylesheet" href="assets/wicart/wicart.css" /> </head> <body> <div class="message"> <div>Ваше письмо отправлено</div> <br/><br/><br/> <div><a href="index.html">Вернуться</a></div> </div> </body> </html>
Вместо Код (Javascript): .done(function() { document.getElementById('box').style.display = 'block'; setTimeout(function() { // Done Functions th.trigger("reset"); document.getElementById('box').style.display = 'none'; }, 5000); }); Вставте Код (Javascript): .done(function() { window.location.replace("./success.html"); }); Нажмите ctrl-F5, и отправте расскажите что произошло --- Добавлено --- @Nickolay Если сайт выложен в сеть, киньте в личку ссылку посмотрю как время будет
Ничего не произошло, снова открылась страница mail.php. Сайт в сеть пока не выложен. Могу скинуть локальные файлы через файлообменник. Или воспользоваться open server, как скачается.
@Nickolay Мне кажется инструкция липа. Они там пишут но в архиве этого файла нет, и в коде обращения к нему нет, создавать его смысла нет. И кстати зачем вам этот фаил если смска отправляется, для чего он был нужен?
Ну я бы так не стал утверждать не зная что этот МОБИРИЗ там генерит и как это он там генерит. @Nickolay выложите исходники, нагенеренные этим чудом, посмотрю
@Nickolay, если предполагается использование AJAX, а вы наблюдаете в браузере переход на обработчик, значит, AJAX по каким-то причинам не срабатывает или вас клиентский скрипт редиректит по адресу обработчика. Как выше написали, при использовании AJAX редирект должен быть не серверный в mail.php, а клиентский осуществляемый скриптом, связанным с формой, с AJAX-отправкой и т.п. Также можно организовать двойственное поведение. Есть поддержка AJAX? – отправляем AJAX'ом, иначе обычным способом.