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]   

> Без описания
Fellhoof
Отправлено: 15 Февраля, 2016 - 12:52:53
Post Id


Новичок


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


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




Дали задачу прилепить к сайту форму электронного обращения. Скрипт, вроде, отрабатывается, но письмо не уходит. Прошу помощи в указании ошибок Улыбка
HTML
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Форма для подання електронного звернення</title>
  7.  
  8. <style type="text/css">
  9. <!--
  10. body {
  11.        background: linear-gradient(to left, white, lightblue);
  12. }
  13. table {
  14.        display: block;
  15.         margin: 2% auto;
  16. }
  17. body form table caption {
  18.         font-size: 20px;
  19.         font-weight: bold;
  20. }
  21.  
  22. select {
  23.         width: 415px;
  24.   }
  25.   .pole_vvoda {
  26.         width:411px;
  27.   }
  28.    tr:hover {
  29.         background: lightblue;
  30.   }
  31. -->
  32. </style>
  33. </head>
  34.  
  35. <body>
  36.  
  37.         <form method="post" action="e-zvern.php">
  38.     <table width="650" border="0" cellpadding="0" cellspacing="10" >
  39.   <caption>
  40.     Форма для подання електронного звернення
  41.           </caption>
  42.   <tr align="left" valign="middle">
  43.     <th width="33%" scope="row">Прізвище, ім'я, по-батькові</th>
  44.     <td width="67%" align="left"><input name="zv_pib" type="text" class="pole_vvoda" style="color: #777;" onfocus="if (this.value == 'Введіть ваші дані') {this.value = ''; this.style.color = '#000';}" onblur="if (this.value == '') {this.value = 'Введіть ваші дані'; this.style.color = '#777';}" value="Введіть ваші дані" /></td>
  45.   </tr>
  46.   <tr align="left" valign="middle">
  47.     <th align="left" scope="row">Оберіть стать</th>
  48.     <td align="left">
  49. <label>
  50.       <form method="get">
  51.       <input type="radio" name="zv_pol" value="Жіноча" />
  52.       Жіноча</label>      <label>
  53.       <input type="radio" name="zv_pol" value="Чоловіча" />
  54.       Чоловіча
  55.       </form>
  56. </label>
  57. </td>
  58.  
  59.     </tr>
  60.   <tr align="left" valign="middle">
  61.     <th scope="row">Вкажіть Ваш e-mail</th>
  62.     <td align="left"><input name="zv_mail" type="text" class="pole_vvoda" style="color: #777;" onfocus="if (this.value == 'Введіть ваші дані') {this.value = ''; this.style.color = '#000';}" onblur="if (this.value == '') {this.value = 'Введіть ваші дані'; this.style.color = '#777';}" value="Введіть ваші дані" /></td>
  63.   </tr>
  64.   <tr align="left" valign="middle">
  65.     <th scope="row">Індекс</th>
  66.     <td align="left"><input name="zv_index" type="text" class="pole_vvoda" style="color: #777;" onfocus="if (this.value == 'Введіть ваші дані') {this.value = ''; this.style.color = '#000';}" onblur="if (this.value == '') {this.value = 'Введіть ваші дані'; this.style.color = '#777';}" value="Введіть ваші дані" /></td>
  67.   </tr>
  68.   <tr align="left" valign="middle">
  69.     <th scope="row">Населений пункт</th>
  70.     <td align="left"><input name="zv_gorod" type="text" class="pole_vvoda" style="color: #777;" onfocus="if (this.value == 'Введіть ваші дані') {this.value = ''; this.style.color = '#000';}" onblur="if (this.value == '') {this.value = 'Введіть ваші дані'; this.style.color = '#777';}" value="Введіть ваші дані" /></td>
  71.   </tr>
  72.   <tr align="left" valign="middle">
  73.     <th scope="row">Вулиця</th>
  74.     <td align="left"><input name="zv_ulica" type="text" class="pole_vvoda" style="color: #777;" onfocus="if (this.value == 'Введіть ваші дані') {this.value = ''; this.style.color = '#000';}" onblur="if (this.value == '') {this.value = 'Введіть ваші дані'; this.style.color = '#777';}" value="Введіть ваші дані" /></td>
  75.   </tr>
  76.   <tr align="left" valign="middle">
  77.     <th scope="row">Будинок, № квартири</th>
  78.     <td align="left"><input name="zv_dom" type="text" class="pole_vvoda" style="color: #777;" onfocus="if (this.value == 'Введіть ваші дані') {this.value = ''; this.style.color = '#000';}" onblur="if (this.value == '') {this.value = 'Введіть ваші дані'; this.style.color = '#777';}" value="Введіть ваші дані" /></td>
  79.   </tr>
  80.   <tr align="left" valign="middle">
  81.     <th scope="row">Номер телефону</th>
  82.     <td align="left"><input name="zv_tel" type="text" class="pole_vvoda" title="Номер телефону" value="+380" /></td>
  83.   </tr>
  84.   <tr align="left" valign="middle">
  85.     <th scope="row">Категорія</th>
  86.     <td align="left">
  87.     <select name="zv_category" onchange="DropdownAlignValue(this)">
  88.     <option value=""></option>
  89.     <option value="Багатодітна сім'я">Багатодітна сім'я</option>
  90.     <option value="Ветеран праці">Ветеран праці</option>
  91.     <option value="Герой Радянського Союзу">Герой Радянського Союзу</option>
  92.     <option value="Герой Соціалістичної праці">Герой Соціалістичної праці</option>
  93.     <option value="Герой України">Герой України</option>
  94.     <option value="Дитина-інвалід">Дитина-інвалід</option>
  95.     <option value="Дитина війни">Дитина війни</option>
  96.     <option value="Дитина">Дитина</option>
  97.     <option value="Інвалід І групи">Інвалід І групи</option>
  98.     <option value="Інвалід Великої Вітчизняної Війни">Інвалід Великої Вітчизняної Війни</option>
  99.     <option value="Інвалід ІІ групи">Інвалід ІІ групи</option>
  100.     <option value="Інвалід ІІІ групи">Інвалід ІІІ групи</option>
  101.     <option value="Мати-героїня">Мати-героїня</option>
  102.     <option value="Одинока мати">Одинока мати</option>
  103.     <option value="Особа що потерпіла від Чорнобильської АЕС">Особа що потерпіла від Чорнобильської АЕС</option>
  104.     <option value="Учасник бойових дій">Учасник бойових дій</option>
  105.     <option value="Учасник війни">Учасник війни</option>
  106.     <option value="Інші категорії">Інші категорії</option>
  107.     </select>    
  108.     </td>
  109.   </tr>
  110.   <tr align="left" valign="middle">
  111.     <th scope="row">Соціальний статус</th>
  112.     <td align="left">
  113.     <select name="zv_status" onchange="DropdownAlignValue(this)">
  114.     <option value=""></option>
  115.     <option value="Безробітний">Безробітний</option>
  116.     <option value="Військовослужбовець">Військовослужбовець</option>
  117.     <option value="Державний службовець">Державний службовець</option>
  118.     <option value="Особа що позбавлена волі">Особа що позбавлена волі</option>
  119.     <option value="Пенсіонер">Пенсіонер</option>
  120.     <option value="Підприємець">Підприємець</option>
  121.     <option value="Працівник бюджетної сфери">Працівник бюджетної сфери</option>
  122.     <option value="Робітник">Робітник</option>
  123.     <option value="Селянин">Селянин</option>
  124.     <option value="Служитель релігійної організації">Служитель релігійної організації</option>
  125.     <option value="Учень">Учень</option>
  126.     <option value="Студент">Студент</option>
  127.     </select>
  128.     </td>
  129.   </tr>
  130.   <tr align="left" valign="middle">
  131.     <th scope="row">Тема звернення</th>
  132.     <td align="left">
  133.     <select name="zv_tema" onchange="DropdownAlignValue(this)">
  134.     <option value=""></option>
  135.     <option value="Промислова політика">Промислова політика</option>
  136.     <option value="Аграрна політика і земельні відносини">Аграрна політика і земельні відносини</option>
  137.     <option value="Транспорт і зв'язок">Транспорт і зв'язок</option>
  138.     <option value="Економічна. Цінова. Інвестиційна. Зовнішньоекономічна. Регіональна політика та будівництво. Підприємництво">Економічна. Цінова. Інвестиційна. Зовнішньоекономічна. Регіональна політика та будівництво. Підприємництво</option>
  139.     <option value="Фінансова політика">Фінансова політика</option>
  140.     <option value="Податкова політика">Податкова політика</option>
  141.     <option value="Митна політика">Митна політика</option>
  142.     <option value="Соціальний захист">Соціальний захист</option>
  143.     <option value="Праця і заробітна плата">Праця і заробітна плата</option>
  144.     <option value="Охорона здоров'я">Охорона здоров'я</option>
  145.     <option value="Комунальне господарство">Комунальне господарство</option>
  146.     <option value="Житлова політика">Житлова політика</option>
  147.     <option value="Екологія та природні ресурси">Екологія та природні ресурси</option>
  148.     <option value="Забезпечення дотримання законності та охорони правопорядку реалізації прав і свобод громадян"> абезпечення дотримання законності та охорони правопорядку реалізації прав і свобод громадян</option>
  149.     <option value="Сім'я. Діти. Молодь. Гендерна рівність. Фізична культура і спорт">Сім'я. Діти. Молодь. Гендерна рівність. Фізична культура і спорт</option>
  150.     <option value="Культура та культурна спадщина. Туризм">Культура та культурна спадщина. Туризм</option>
  151.     <option value="Освіта. Наукова. Науково-технічна. Інноваційна діяльність та інтелектуальна власність">Освіта. Наукова. Науково-технічна. Інноваційна діяльність та інтелектуальна власність</option>
  152.     <option value="Інформаційна політика. Діяльність засобів масової інформації">Інформаційна політика. Діяльність засобів масової інформації</option>
  153.     <option value="Діяльність об'єднань громадян. Релігія та міжконфесійні відносини">Діяльність об'єднань громадян. Релігія та міжконфесійні відносини</option>
  154.     <option value="Діяльність Верховної Ради України. Діяльність Президента України та Кабінету Міністрів України">Діяльність Верховної Ради України. Діяльність Президента України та Кабінету Міністрів України</option>
  155.     <option value="Діяльність центральних органів виконавчої влади">Діяльність центральних органів виконавчої влади</option>
  156.     <option value="Діяльність місцевих органів виконавчої влади">Діяльність місцевих органів виконавчої влади</option>
  157.     <option value="Діяльність органів місцевого самоврядування">Діяльність органів місцевого самоврядування</option>
  158.     <option value="Обороноздатність. Суверенітет. Міждержавні і міжнаціональні відносини">Обороноздатність. Суверенітет. Міждержавні і міжнаціональні відносини</option>
  159.     <option value="Державне будівництво. Адміністративно-територіальний устрій">Державне будівництво. Адміністративно-територіальний устрій</option>
  160.     <option value="Факти корупції">Факти корупції</option>
  161.     <option value="Інші питання">Інші питання</option>
  162.     </select>
  163.     </td>
  164.   </tr>
  165.     <tr align="left" valign="middle">
  166.     <th colspan="2" align="center" scope="row"><p>Текст електронного звернення:      <textarea name="zv_text" cols="87" rows="7"></textarea>
  167.     </p>
  168.         <input type="submit"></th>
  169.     </tr>
  170. </table>
  171.  
  172.    
  173.    
  174. </form>
  175.  
  176. </body>
  177.  
  178. </html>
  179.  
  180.  


И, собственно, PHP
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3.  
  4. $adminemail="Моя почта";
  5.  
  6. $date=date("d.m.y");
  7.  
  8. $time=date("H:i");
  9.  
  10. $backurl="Сайт перенаправления";
  11.  
  12. $pib=$_POST['pib'];
  13.  
  14. $pol=$_POST['pol'];
  15.  
  16. $email=$_POST['mail'];
  17.  
  18. $index=$_POST['index'];
  19.  
  20. $gorod=$_POST['gorod'];
  21.  
  22. $ulica=$_POST['ulica'];
  23.  
  24. $dom=$_POST['dom'];
  25.  
  26. $tel=$_POST['tel'];
  27.  
  28. $category=$_POST['category'];
  29.  
  30. $status=$_POST['status'];
  31.  
  32. $tema=$_POST['tema'];
  33.  
  34. $text=$_POST['text'];
  35.  
  36. if (!preg_match("|^([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is",
  37. strtolower($email)))
  38.  
  39.  {
  40.  
  41.   echo
  42. "<center>Поверніться <a href='javascript:history.back(1)'><B>назад</B></a>. Ви
  43. ввели невірну адресу електронної пошти";
  44.  
  45.   }
  46.  
  47.  else
  48.  
  49.  {
  50.  
  51.  
  52. $msg="
  53.  
  54. <p>Прізвище, ім'я, по-батькові: $pib</p>
  55. <p>Стать: $pol</p>
  56. <p>E-mail: $email</p>
  57. <p>Індекс: $index</p>
  58. <p>Населений пункт: $gorod</p>
  59. <p>Вулиця: $ulica</p>
  60. <p>Будинок, № квартири: $dom</p>
  61. <p>Номер телефону: $tel</p>
  62. <p>Категорія: $category</p>
  63. <p>Соціальний статус: $status</p>
  64. <p>Тема звернення: $tema</p>
  65. <p>Текст електронного звернення: $text</p>
  66.  
  67.  
  68. ";
  69.  
  70. mail("$adminemail", "$date $time Повідомлення від $pib", "За статтю: $pol", "E-mail: $email", "Індекс: $index", "Населений пункт: $gorod", "Вулиця: $ulica", "Будинок, № квартири: $dom", "Номер телефону: $tel", "Категорія: $category", "Соціальний статус: $status", "Тема звернення: $tema", "Текст електронного звернення: $text");
  71.  
  72. $f = fopen("message.txt", "a+");
  73.  
  74. fwrite($f," \n $date $time Повідомлення від $pib");
  75.  
  76. fwrite($f,"\n За статтю: $pol");
  77.  
  78. fwrite($f,"\n E-mail: $email");
  79.  
  80. fwrite($f,"\n Індекс: $index");
  81.  
  82. fwrite($f,"\n Населений пункт: $gorod");
  83.  
  84. fwrite($f,"\n Вулиця: $ulica");
  85.  
  86. fwrite($f,"\n Будинок, № квартири: $dom");
  87.  
  88. fwrite($f,"\n Номер телефону: $tel");
  89.  
  90. fwrite($f,"\n Категорія: $category");
  91.  
  92. fwrite($f,"\n Соціальний статус: $status");
  93.  
  94. fwrite($f,"\n Тема звернення: $tema");
  95.  
  96. fwrite($f,"\n Текст електронного звернення: $text");
  97.  
  98. fwrite($f,"\n ---------------");
  99.  
  100. fclose($f);
  101.  
  102. print "<script language='Javascript'><!--
  103. function reload() {location = \"$backurl\"}; setTimeout('reload()', 6000);
  104. //--></script>
  105.  
  106. $msg
  107.  
  108. <H2>Повідомлення надіслано! Зачекайте, ви будете перенаправлені на <a href='javascript:history.back(1)'><B>головну</B></a> сторінку...</H2>";
  109.  
  110.  
  111.  }
  112.  
  113. ?>
  114.  
  115.  
 
 Top
caballero
Отправлено: 15 Февраля, 2016 - 13:16:51
Post Id


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


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


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




вообще то первый параметр в mail должен содержать email


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Fellhoof
Отправлено: 15 Февраля, 2016 - 13:19:56
Post Id


Новичок


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


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




caballero пишет:
вообще то первый параметр в mail должен содержать email

Содержит, убрал перед постом =)
 
 Top
Viper
Отправлено: 15 Февраля, 2016 - 14:40:34
Post Id



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


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


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




Fellhoof пишет:
но письмо не уходит.
больше подробностей. Логи севера, php смотрели?


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Fellhoof
Отправлено: 15 Февраля, 2016 - 15:22:28
Post Id


Новичок


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


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




Viper пишет:
больше подробностей. Логи севера, php смотрели?


Делал с этого примера

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4. /*
  5.         form.php
  6.         Тестовая форма для демонстрации обработки данных из формы в PHP
  7.         Файл должен быть сохранён в кодировке utf-8
  8. */
  9. header('Content-Type: text/html; charset=utf-8');
  10. // Куда отправлять сообщения
  11. $emailAddress = 'username@domain.zone';
  12. // Адрес сайта, с которого он отправляет сообщения
  13. $siteEmail = 'info@mysite.com';
  14. // Тема сообщения
  15. $emailTheme = 'Письмо с моего сайта';
  16. ?>
  17. <html>
  18. <head>
  19.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  20.         <title>Тестовая форма и её обработка</title>
  21. </head>
  22. <body>
  23.         <h3>Тестовая форма и её обработка</h3>
  24.         <form name="testForm" method="post" action="<?PHP echo($_SERVER['PHP_SELF']); ?>">
  25.         <table>
  26.                 <tr>
  27.                         <td>Текстовый инпут</td>
  28.                         <td><input type="text" name="first" value="" /></td>
  29.                 </tr>
  30.                 <tr>
  31.                         <td>Раскрывающийся список</td>
  32.                         <td>
  33.                                 <select name="second">
  34.                                         <option value="1">Первое значение</option>
  35.                                         <option value="2">Второе значение</option>
  36.                                         <option value="3">Третье значение</option>
  37.                                 </select>
  38.                         </td>
  39.                 </tr>
  40.                 <tr>
  41.                         <td>Чекбоксы</td>
  42.                         <td>
  43.                                 <input type="checkbox" name="third" value="On" /> - Первый чекбокс выбран                                <input type="checkbox" name="fourth" value="On" /> - Второй чекбокс выбран                                <input type="checkbox" name="fifth" value="On" /> - Третий чекбокс выбран
  44.                         </td>
  45.                 </tr>
  46.                 <tr>
  47.                         <td>Переключатели</td>
  48.                         <td>
  49.                                 <input type="radio" name="sixth" value="1" /> - Первой                                <input type="radio" name="sixth" value="2" /> - Второй                                <input type="radio" name="sixth" value="3" /> - Третий
  50.                         </td>
  51.                 </tr>
  52.                 <tr>
  53.                         <td>Поле для текста</td>
  54.                         <td><textarea name="seventh"></textarea></td>
  55.                 </tr>
  56.                 <tr>
  57.                         <td>&nbsp;</td>
  58.                         <td><input type="submit" name="sended" value="Отправить форму!" /></td>
  59.                 </tr>
  60.         </table>
  61.         <input type="hidden" name="eighth" value="Какое-нибудь значение скрытого поля" />
  62. </form>
  63. <?PHP
  64. // Проверяем была ли отправлена форма
  65. if(isset($_POST['sended'])) {
  66.         // Переменная, в которую будем собирать текст нашего сообщения
  67.         $message = 'Форма была отправлена!<br />';
  68.         // Текстовый инпут теперь ы переменной $first
  69.         $first = isset($_POST['first']) ? $_POST['first'] : '';
  70.         $message .= 'В текстовый инпут ввели: ' . htmlspecialchars($first) . '<br />';
  71.         // Раскрывающийся список
  72.         $second = isset($_POST['second']) ? $_POST['second'] : '';
  73.         $message .= 'В раскрывающемся списке был выбран элемент, у которого value = ' . htmlspecialchars($second) . '<br />';
  74.         // Чекбоксы
  75.         if(isset($_POST['third']))
  76.                 $message .= 'Первый чекбокс был выбран<br />';
  77.         if(isset($_POST['fourth']))
  78.                 $message .= 'Второй чекбокс был выбран<br />';
  79.         if(isset($_POST['fifth']))
  80.                 $message .= 'Третий чекбокс был выбран<br />';
  81.         // Переключатели
  82.         $sixth = isset($_POST['sixth']) ? $_POST['sixth'] : '';
  83.         if(empty($sixth))
  84.                 $message .= 'Никакой переключатель не был выбран<br />';
  85.         else
  86.                 $message .= 'Был выбран переключатель, у которого value = ' . htmlspecialchars($sixth) . '<br />';
  87.         // Поле для текста
  88.         $seventh = isset($_POST['seventh']) ? $_POST['seventh'] : '';
  89.         $message .= 'В текстовое поле было введено: ' . nl2br(htmlspecialchars($seventh)) . '<br />';
  90.         // Значение скрытого поля
  91.         $eighth = isset($_POST['eighth']) ? $_POST['eighth'] : '';
  92.         $message .= 'В скрытом поле было: ' . htmlspecialchars($eighth);
  93.         // Отправляем письмо
  94.         $headers = array(
  95.                 'MIME-Version: 1.0',
  96.                 'From: ' . $siteEmail,
  97.                 'Reply-To: ' . $siteEmail,
  98.                 'Content-Type: text/html; charset=utf-8'
  99.         );
  100.         if(mail($emailAddress, $emailTheme, $message, implode("\r\n", $headers)))
  101.                 $message .= '<br />PHP считает, что письмо отправлено, проверяй ящик! Загляни в спам, если письма не видно';
  102.         else
  103.                 $message .= '<br />PHP считает, что письмо отправить не удалось...';
  104.         // А также покажем на странице введённые данные и результат отправки письма
  105.         echo($message);
  106. }
  107. ?>
  108.         </body>
  109. </html>
  110.  


Оригинал нормально работает, значит таки я накосячил в коде, но хоть убей не могу найти ошибку.

(Отредактировано автором: 15 Февраля, 2016 - 15:23:16)

 
 Top
Fellhoof
Отправлено: 16 Февраля, 2016 - 10:04:09
Post Id


Новичок


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


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




Разобрался, всем спасибо. Тема закрыта.
 
 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