Помогите, пожалуйста! Есть одна форма в модальном окне. И вторая - просто открытая. PHP: <?php include 'functions.php'; if (!empty($_POST)){ $data['success'] = true; $_POST = multiDimensionalArrayMap('cleanEvilTags', $_POST); $_POST = multiDimensionalArrayMap('cleanData', $_POST); //your email adress $emailTo ="000@mail.ru"; //"yourmail@yoursite.com"; //from email adress $emailFrom ="admin@e.ru"; //"contact@yoursite.com"; //email subject $emailSubject = "Сообщение с сайта "; $name = $_POST["name"]; $email = $_POST["email"]; $telephone = $_POST["telephone"]; $msg = $_POST["msg"]; if($name == "") $data['success'] = false; if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) $data['success'] = false; if($name == "") $data['success'] = false; if($data['success'] == true){ header("Location: /indexsite.html"); $message = "Имя: $name<br> e-mail: $email<br> Телефон: $telephone<br> Сообщение: $msg"; $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html; charset=utf-8" . "\r\n"; $headers .= "From: <$emailFrom>" . "\r\n"; mail($emailTo, $emailSubject, $message, $headers); $data['success'] = true; echo json_encode($data); } } Обе формы работают..НО После отправки не закрываются просто так, а происходит перекидывание на файл php в новом окне, а только потом я прописал возврат через n-секунд. Очень замучился! Подскажите, умные люди - первая (модальное окно), нужно чтобы после нажатия на кнопку окно просто закрывалось и данные отправлялись (а не перекидывало с подтверждением). Вторая - чтобы человек после нажатия на кнопку оставался на странице.
PHP: <?php include 'functions.php'; if (!empty($_POST)){ $data['success'] = true; $_POST = multiDimensionalArrayMap('cleanEvilTags', $_POST); $_POST = multiDimensionalArrayMap('cleanData', $_POST); //your email adress $emailTo ="а@mail.ru"; //"yourmail@yoursite.com"; //from email adress $emailFrom ="admin@d.ru"; //"contact@yoursite.com"; //email subject $emailSubject = "Сообщение с сайта d"; $name = $_POST["name"]; $telephone = $_POST["telephone"]; if($name == "") $data['success'] = false; if($data['success'] == true){ header("Location:/indexsite.html"); $message = "Имя: $name<br> Телефон: $telephone"; $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html; charset=utf-8" . "\r\n"; $headers .= "From: <$emailFrom>" . "\r\n"; mail($emailTo, $emailSubject, $message, $headers); $data['success'] = true; echo json_encode($data); } } Вот эта строка header("Location:/indexsite.html"); должна вроде бы после отправки формы сразу перекидывать на главную страницу сайта. Но кидает в пустое окно с надписью Warning: Cannot modify header information - headers already sent by (output started at Z:\home\da.ru\www\php\application.php:1) in Z:\home\da.ru\www\php\application.php on line 25 {"success":true} Письмо приходит, а страница так и висит с этой надписью. Во второй форме на этой же странице всё работает - секунду ожидания и автопереброс с отправкой данных. Полностью уже из неё скопировал код...НО...
А в этом же скрипте можно что-то дописать, чтобы выводилось сообщение об успешной отправке? На главной странице сайта поверх всех окон? --- Добавлено --- Блин, сообщения новые неудобно отправлять на форум. Без BOM сохранил - заработало. Тупица я
Ну, звиняйте - я по другому направлению работаю, в сторону PHP мне только со словарём. Кто-то понимает, что за BOM и где его брать, а кого-то как собаку - мордой потыкать нужно. Помогите, пожалуйста, может можно к основному скрипту вписать что-то, чтобы не только отправляло и перекидывало на главную страницу, но и выводило, к примеру, вверху экрана сообщение - "Спасибо за Ваш интерес" (это когда уже перекинуло, на главной странице) Сейчас копаюсь с echo, но не пойму - куда его вставлять.
изменить расширение с html на php, затем при перенаправлении выполнить следующий секретный и пока ни кому не известный финт: PHP: header("Location:/indexsite.php?send=1"); А на странице indexsite.php в нужном месте: PHP: if( !empty( $_GET['send'] ) ) { echo "Спасибо, бла бла бла !" }
а вставлять так на странице indexsite.php в нужном месте? PHP: <?php if( !empty( $_GET['send'] ) ) echo "Спасибо, бла бла бла !" ?> оно просто текстом выводится сразу и висит независимо от отправки сообщения
я суть идеи передал. Дальше сам. Мне лень писать статьи о том, как всё работает. --- Добавлено --- в сотый раз...
Еперный театр ! Ребят мне вот интерестно вы сам разобраться пробовали в таких элементарных вещех? Автор ты искал в интернете что такое редирект и как им пользоваться? Вот только честно
@Alex1979 Автор тебе можно сделать так, вместо: PHP: if($data['success'] == true){ header("Location:/indexsite.html"); Подставить этот код: PHP: if($data['success'] == true){ echo "<script>document.location.href='/indexsite.html';</script>"; И тебя перенаправит куда ты хочешь, мини скрипт тебе в помощь Мне когда то подсказали, а я тебе советую! Кстати на счет твоей ошибки, ты отправляешь заголовки которые уже были отправлены. В гугл вбил и перевел