Гость
![](./im/images/pips2.gif)
Покинул форум
Сообщений всего: 107
Дата рег-ции: Сент. 2012
Помог: 0 раз(а)
![](./templates/InvisionExBB/im/spacer.gif)
|
Есть файл который содержит в себе форму отправки сообщения и action функцию mail, если этот файл запускать сам по себе все работает, а если он подключен к другому файлу через include, то не выводятся сообщения об ошибке и не работает header
PHP:
скопировать код в буфер обмена
<? include ('../blocks/bd.php'); if (isset($_GET['id_product'])){ $id_product=$_GET['id_product']; $sql_products="SELECT * FROM products WHERE id_product=$id_product"; ?> <?function show_form() { ?> <form action="" method="post"> <input class="input2" name="name" type="text" size="20"> <input type="hidden" name="title" value="<?echo $row_products['name_product'];?>" <input class="input2" type="submit" name="submit" value="Отправить данные"/> </form> <? } } } else echo "no id_product"; function complete_mail() { // $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично // если не заполнено поле "Имя" - показываем ошибку 0 output_err(0); } // если неправильно заполнено поле email - показываем ошибку 1 if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email)){ output_err(1); } // если не заполнено поле "Сообщение" - показываем ошибку 2 output_err(2); } // создаем наше сообщение $message = "Товар:$title<br/>Имя отправителя:$name<br />Контактный телефон:$phone<br />Контактный email:$email<br /><p>$mess</p><br />" ; // $to - кому отправляем $to = 'webmaster@imedia.in.ua'; // $from - от кого $from='webmaster@imedia.in.ua'; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-Transfer-Encoding: 8bit\r\n"; $headers .= "Content-Type: text/html; charset=\"UTF-8\"\r\n"; $headers .= "From: =?utf-8?B?" . base64_encode("Web Master") . "?= '".$to."'\r\n"; $subject = "Потенциальный заказчик"; echo "Спасибо! Ваше письмо отправлено.<br />"; return true; }else{ echo "Общая ошибка отправки сообщения<br />Попробуйте ещё раз"; return false; } } function output_err($num) { $err[0] = 'ОШИБКА! Не введено имя.'; $err[1] = 'ОШИБКА! Неверно введен e-mail.'; $err[2] = 'ОШИБКА! Не введено сообщение.'; echo '<p>'.$err[$num].'</p>'; show_form(); } if (isset($_POST['submit'])) { if(!complete_mail()){ show_form(); } else header('Location:../index.php'); }else{ show_form(); } ?>
|