Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: при подключении файла не выводит сообщение об ошибке

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: рабочая функция mail для отправки e-mail
imediasun2
Отправлено: 26 Января, 2013 - 14:13:59
Post Id


Гость


Покинул форум
Сообщений всего: 107
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Есть файл который содержит в себе форму отправки сообщения и action функцию mail, если этот файл запускать сам по себе все работает, а если он подключен к другому файлу через include, то не выводятся сообщения об ошибке и не работает header

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.  
  4. include ('../blocks/bd.php');
  5. if (isset($_GET['id_product'])){
  6. $id_product=$_GET['id_product'];
  7. $sql_products="SELECT * FROM products WHERE id_product=$id_product";
  8. $query_products=mysql_query($sql_products)or die (mysql_error());
  9. while($row_products=mysql_fetch_assoc($query_products)){
  10. ?>
  11. <?function show_form()
  12. {
  13. ?>
  14. <form action="" method="post">
  15. <input class="input2" name="name" type="text" size="20">
  16. <input type="hidden" name="title" value="<?echo $row_products['name_product'];?>"
  17. <input class="input2" type="submit" name="submit" value="Отправить данные"/>
  18. </form>
  19.  
  20.  
  21. <?
  22. }
  23. }
  24.  
  25. }
  26. else echo "no id_product";
  27. function complete_mail() {
  28. // $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и  substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично
  29. $title =  substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);
  30. $name =  substr(htmlspecialchars(trim($_POST['name'])), 0, 30);
  31. $mess =  substr(htmlspecialchars(trim($_POST['mess'])), 0, 1000000);
  32. $phone =  substr(htmlspecialchars(trim($_POST['phone'])), 0, 30);
  33. $email =  substr(htmlspecialchars(trim($_POST['email'])), 0, 50);
  34. // если не заполнено поле "Имя" - показываем ошибку 0
  35. if (empty($name)){
  36. output_err(0);
  37. }
  38. // если неправильно заполнено поле email - показываем ошибку 1
  39. if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email)){
  40. output_err(1);
  41. }
  42. // если не заполнено поле "Сообщение" - показываем ошибку 2
  43. if(empty($mess)){
  44. output_err(2);
  45. }
  46. // создаем наше сообщение
  47. $message = "Товар:$title<br/>Имя отправителя:$name<br />Контактный телефон:$phone<br />Контактный email:$email<br /><p>$mess</p><br />" ;
  48. // $to - кому отправляем
  49. $to = 'webmaster@imedia.in.ua';
  50. // $from - от кого
  51. $from='webmaster@imedia.in.ua';
  52. $headers = "MIME-Version: 1.0\r\n";
  53. $headers .= "Content-Transfer-Encoding: 8bit\r\n";
  54. $headers .= "Content-Type: text/html; charset=\"UTF-8\"\r\n";
  55. $headers .= "From: =?utf-8?B?" . base64_encode("Web Master") . "?= '".$to."'\r\n";
  56. $subject = "Потенциальный заказчик";
  57. if(mail($to, "=?utf-8?B?" . base64_encode($subject) . "?=", $message, $headers)){
  58. echo "Спасибо! Ваше письмо отправлено.<br />";
  59. return true;
  60. }else{
  61. echo "Общая ошибка отправки сообщения<br />Попробуйте ещё раз";
  62. return false;
  63. }
  64.        
  65. }
  66.  
  67. function output_err($num)
  68. {
  69.     $err[0] = 'ОШИБКА! Не введено имя.';
  70.     $err[1] = 'ОШИБКА! Неверно введен e-mail.';
  71.     $err[2] = 'ОШИБКА! Не введено сообщение.';
  72.     echo '<p>'.$err[$num].'</p>';
  73.     show_form();
  74.     exit();
  75. }
  76.  
  77. if (isset($_POST['submit'])) {
  78.         if(!complete_mail()){
  79.                 show_form();
  80.         }
  81.         else
  82.         header('Location:../index.php');
  83. }else{
  84. show_form();
  85. }
  86. ?>
  87.  
 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Января, 2013 - 14:21:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




imediasun2 пишет:
include ('../blocks/bd.php');
Попов детектед.
imediasun2 пишет:
не работает header

Заголовки могут отправляться только до любого вывода.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB