Добрый день, всем, есть следующий код PHP скрипта формы обратной связи: Код (Text): <?php header('Content-Type: text/html; charset=Windows-1251'); if(isset($_GET["mail"])) echo 'Ваше письмо отправлено...'; session_start(); $admin = 'email'; if ( isset( $_POST['sendMail'] ) ) { $name = substr( $_POST['name'], 0, 64 ); $email = substr( $_POST['email'], 0, 64 ); $subject = substr( $_POST['subject'], 0, 64 ); $message = substr( $_POST['message'], 0, 250 ); } // обработка ошибок $error = ''; if ( empty( $name ) ) $error = $error.'<li>Не заполнено поле "Имя"</li>'; if ( empty( $email ) ) $error = $error.'<li>Не заполнено поле "E-mail"</li>'; if ( empty( $subject ) ) $error = $error.'<li>Не заполнено поле "Тема"</li>'; if ( empty( $message ) ) $error = $error.'<li>Не заполнено поле "Сообщение"</li>'; if ( !empty( $email ) and !preg_match( "#^[0-9a-z_\-\.]+@[0-9a-z\-\.]+\.[a-z]{2,6}$#i", $email ) ) $error = $error.'<li>поле "E-mail" должно соответствовать формату somebody@somewhere.ru</li>'; if ( !empty( $error ) ) { $_SESSION['sendMailForm']['error'] = '<p>При заполнении формы были допущены ошибки: </p><ul>'.$error.'</ul>'; $_SESSION['sendMailForm']['name'] = $name; $_SESSION['sendMailForm']['email'] = $email; $_SESSION['sendMailForm']['subject'] = $subject; $_SESSION['sendMailForm']['message'] = $message; header( 'Location: '.$_SERVER['PHP_SELF'] ); // перенаправление в корневую страницу если есть ошибки die(); } $body = "АВТОР:".$name." E-MAIL".$email." ТЕМА:".$subject." СООБЩЕНИЕ:".$message; if ( mail($admin, "Заполнена форма на сайте", $body) ){ $_SESSION['success'] = true; echo "Сообщение успешно отправлено"; } else { $_SESSION['success'] = false; header( 'Location: '.$_SERVER['PHP_SELF'] ); die(); } ?> Достаточно добротный и рабочий код, но есть две хорошоватости: 1) письма с заполненной формы приходят в непонятной кодировке; 2) после нажатия кнопки отправить пользователь получает белый экран с собщением что оно успешно ушло, хотелось бы конечно чтобы это напись возникала всплывающе, на той же странице не давая белый экран. У кого какие мысли, да под мыслями конечно автор темы понимает конкретные строчки кода
Benjamin Весь код чего? я вам выложил весь код php скрипта, html страница на которой есть форма обратной связи выслается на обработку его
Вот код страницы contact.html HTML: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>Заказать услуги - BBAPPLE.RU</title> <meta name="description" content="website description" /> <meta name="keywords" content="website keywords, website keywords" /> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" type="text/css" href="style/style.css" /> </head> <body> <div id="main"> <div id="links"></div> <div id="header"> <div id="logo"> <div id="logo_text"> <!-- class="logo_colour", allows you to change the colour of the logo text --> <a href="http://www.bbapple.ru"> <h1>Blackberry<span class="logo_colour">_Apple FIX</span></h1> <h2>Нет проблемы, которую бы мы не решили</h2> </div> </div> <div id="menubar"> <ul id="menu"> <!-- put class="tab_selected" in the li tag for the selected page - to highlight which page you're on --> <li><a href="index.html">ГЛАВНАЯ</a></li> <li><a href="our_services.html">УСЛУГИ</a></li> <li><a href="about_us.html">О НАС</a></li> <li><a href="goods.html">ТОВАРЫ</a></li> <li class="tab_selected"><a href="contact.html">ЗАКАЗАТЬ УСЛУГИ</a></li> </ul> </div> </div> <div id="site_content"> <div id="sidebar_container"> <!-- insert your sidebar items here --> <div class="sidebar"> <div class="sidebar_top"></div> <div class="sidebar_item"> <h1>Последние Новости</h1> <h4>Продается NOKIA E7</h4> <p>Nokia E7 — безукоризненно стильный коммуникатор с полным набором инструментов для работы и развлечений. <br /> <a href="goods.html">Посмотреть</a></p> </div> <div class="sidebar_base"></div> </div> <div class="sidebar"> <div class="sidebar_top"></div> <div class="sidebar_item"> <h1>Полезные Ссылки</h1> <ul> <li><a href="http://ru.blackberry.com/support/">Blackberry</a><a href="#"></a></li> <li><a href="http://www.apple.com/ru/support/">Apple</a><a href="#"></a></li> <li><a href="http://support.sony-europe.com/index.aspx?site=odw_ru_RU">Sony</a><a href="#"></a></li> <li><a href="http://www.nokia.ru/support">Nokia</a><a href="#"></a></li> </ul> </div> <div class="sidebar_base"></div> </div> <div class="sidebar"> <div class="sidebar_top"></div> <div class="sidebar_item"> <h1>P.S.</h1> <p>Вы всегда платите только за результат.</p> </div> <div class="sidebar_base"></div> </div> </div> <div id="content_container"> <div id="content_top"></div> <div id="content"> <!-- insert the page content here --> <h1>Заказать услуги</h1> <p>Здесь вы можете заказать интересующие вас услуги:</p> <form method="post" action="/send.php"> <div class="form_settings"> <p><span>Как вас зовут</span> <input type="text" value="" name="name" class="contact"></p> <p><span>Ваш Email</span> <input type="hidden" value="yes" name="sendMail"></p> <input type="hidden" value="?????? ? ?????" name="subject" class="contact"> <input type="text" value="" name="email" class="contact"></p> <p><span>Сообщение</span> <textarea name="message" cols="50" rows="8" class="contact textarea"></textarea></p> <p style="padding-top: 15px"><span> </span><input type="submit" value="Отправить" name="contact_submitted" class="submit"> </p> </div> </form> <p><br /><br /> ПРИМЕЧАНИЕ: Не забудьте указать ваш Email, иначе мы просто не сможем с вами связаться :)</p> </div> <div id="content_base"></div> </div> </div> <div id="footer">Copyright © BBAPPLE.RU. ВСЕ ПРАВА ЗАЩИЩЕНЫ. ДИЗАЙН dcarter</div> </div> <div style="text-align: center; font-size: 0.75em;"></div> </body> </html>
burndalen, все русские символы html-кодированы. с точки зрения челокева, который пишет в нормальной IDE, такой html практически бесполезен для работы
а хз... вроде дримвьювер умеет работать с кодировками нормально. поставьте себе UTF-8 или CP1251 (на своё усмотрение). то, что уже кодировано не знаю, как вы будете восстанавливать
titch понятно, а разве если этот код (который я выложил) открыть в дримвьювере человек не сможет увидет текст как положенно?
Benjamin вот код скрипта: Код (Text): <?php header('Content-Type: text/html; charset=Windows-1251'); if(isset($_GET["mail"])) echo 'Ваше письмо отправлено...'; session_start(); $admin = 'email'; if ( isset( $_POST['sendMail'] ) ) { $name = substr( $_POST['name'], 0, 64 ); $email = substr( $_POST['email'], 0, 64 ); $subject = substr( $_POST['subject'], 0, 64 ); $message = substr( $_POST['message'], 0, 250 ); } // обработка ошибок $error = ''; if ( empty( $name ) ) $error = $error.'<li>Не заполнено поле "Имя"</li>'; if ( empty( $email ) ) $error = $error.'<li>Не заполнено поле "E-mail"</li>'; if ( empty( $subject ) ) $error = $error.'<li>Не заполнено поле "Тема"</li>'; if ( empty( $message ) ) $error = $error.'<li>Не заполнено поле "Сообщение"</li>'; if ( !empty( $email ) and !preg_match( "#^[0-9a-z_\-\.]+@[0-9a-z\-\.]+\.[a-z]{2,6}$#i", $email ) ) $error = $error.'<li>поле "E-mail" должно соответствовать формату somebody@somewhere.ru</li>'; if ( !empty( $error ) ) { $_SESSION['sendMailForm']['error'] = '<p>При заполнении формы были допущены ошибки: </p><ul>'.$error.'</ul>'; $_SESSION['sendMailForm']['name'] = $name; $_SESSION['sendMailForm']['email'] = $email; $_SESSION['sendMailForm']['subject'] = $subject; $_SESSION['sendMailForm']['message'] = $message; header( 'Location: '.$_SERVER['PHP_SELF'] ); // перенаправление в корневую страницу если есть ошибки die(); } $body = "АВТОР:".$name." E-MAIL".$email." ТЕМА:".$subject." СООБЩЕНИЕ:".$message; if ( mail($admin, "Заполнена форма на сайте", $body) ){ $_SESSION['success'] = true; echo "Сообщение успешно отправлено"; } else { $_SESSION['success'] = false; header( 'Location: '.$_SERVER['PHP_SELF'] ); die(); } ?> Вы о нем?