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]   

> Описание: Запрос при открытие страницы
Vovan6996
Отправлено: 28 Октября, 2014 - 15:04:03
Post Id


Новичок


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


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




Здравствуйте. Помогите с решением. Имеется код который формирует файл и отправляет его по почте. Как сделать что бы он не срабатывал при открытии страницы а только после нажатие кнопки отправить.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. function show_form() {
  4.  $data = new Data();
  5.  $id = ($_SESSION['user']['id']) ? $_SESSION['user']['id'] : $_COOKIE['user_id'];
  6.  $result = $data->showProfile($id);
  7.  
  8.  
  9. ?>
  10. <form action="" method="post"  class="pure-form">
  11. <script>
  12.     function show() {
  13.     document.getElementById('info').style.display='block';
  14.     }
  15.     function hide() {
  16.         document.getElementById('info').style.display='none';
  17.     }
  18. </script>
  19.  
  20. <div >
  21.  
  22. <div style="float: left;">    Фамилия *</div>
  23. <div style="float: center; width: 49%;">  <input type="text" name="familiya" size="30" required value="<?=$result->familiya;?>" ></div><div class="clear">
  24. <div style="float: left;">  Имя *</div>
  25. <div style="float: center; width: 49%;"><input type="text" name="imya" size="30"  value="<?=$result->imya;?>"></div><div class="clear">
  26. <div style="float: left;"> Отчество </div>
  27. <div style="float: center; width: 49%;"><input type="text" name="otchestvo" size="30" value="<?=$result->otchestvo;?>"></div><div class="clear">
  28. <div style="float: left;"> Улица * </div>
  29. <div style="float: center; width: 49%;"><input type="text" name="ylica" size="30" value="<?=$result->ylica;?>"></div><div class="clear">
  30. <div style="float: left;"> Дом * </div>
  31. <div style="float: center; width: 49%;"><input type="text" name="Dom" size="30" value="<?=$result->Dom;?>"></div><div class="clear">
  32. <div style="float: left;"> Квартира *</div>
  33. <div style="float: center; width: 49%;"><input type="text" name="Kvartira" size="30" value="<?=$result->Kvartira;?>"></div><div class="clear">
  34. <div style="float: left;"> Корпус</div>
  35. <div style="float: center; width: 49%;"><input type="text" name="Korpus" size="30" value="<?=$result->Korpus;?>"></div><div class="clear">
  36. <div style="float: left;"> Номер договора </div>
  37. <div style="float: center; width: 49%;"><input type="text" name="Dogovor" size="30" value="<?=$result->Dogovor;?>"></div><div class="clear">
  38. <div style="float: left;"> Лицевой Счет * </div>
  39. <div style="float: center; width: 49%;"><input type="text" name="Licevoj" size="30" value="<?=$result->Licevoj;?>"></div><div class="clear">
  40. <div style="float: left;"> Контактный телефон</div>
  41. <div style="float: center; width: 40%;"><input type="text" name="Tel" size="30"value="<?=$result->Tel;?>"> </div><div class="clear">
  42. <div style="float: left;">  email </div>
  43. <div style="float: center; width: 49%;"><input type="text" name="email" size="30" value="<?=$result->email;?>"> </div><div class="clear">
  44. <div style="float: left;"> Номер карточки *</div>
  45. <div style="float: center; width: 49%;"><input type="text" name="Kart" size="30" value="<?=$result->Kart;?>"></div><div class="clear">
  46.  
  47.  
  48. <br />Наш Футбол*<p><input type="radio" name="foot1" value="V"> Подключить
  49.    <input type="radio" name="foot2" value="V"> Отключить</p>
  50.  <br />Ночной*<p><input type="radio" name="noch" value="V" onChange="show()"> Подключить   <input type="radio" name="noch" value="V2" onChange="hide()"> Отключить</p>
  51. <div id="info" style="display:none">
  52.        <label><input name="radio_sure" type="checkbox" value="Абонент  " />Мне есть 18+</label>
  53.       </div>
  54.  
  55.              
  56.              
  57. <br /> Изменения вступят в силу с 01.<input type="month" name="Mesuc" size="30">  
  58.  
  59.  Поля помеченные * необходимы для заполнения
  60. <p><input type="checkbox" name="Soglashenie" value="V"> <a href="http://norbi-tv.ru/soglashenie" target="_blank">С дополнительным соглашением ознакомлен</a></p><br />=
  61. <br /><input type="submit" value="Отправить" name="submit">
  62.  
  63. </div>
  64. </form> <?PHP
  65. }
  66.  
  67.  
  68. $familiya = substr(htmlspecialchars(trim($_POST['familiya'])), 0, 30);
  69. $imya = substr(htmlspecialchars(trim($_POST['imya'])), 0, 30);
  70. $otchestvo = substr(htmlspecialchars(trim($_POST['otchestvo'])), 0, 30);
  71. $Ylica = substr(htmlspecialchars(trim($_POST['Ylica'])), 0, 30);
  72. $Dom = substr(htmlspecialchars(trim($_POST['Dom'])), 0, 30);
  73. $Kvartira = substr(htmlspecialchars(trim($_POST['Kvartira'])), 0, 30);
  74. $Korpus = substr(htmlspecialchars(trim($_POST['Korpus'])), 0, 30);
  75. $Podjezd = substr(htmlspecialchars(trim($_POST['Podjezd'])), 0, 30);
  76. $Itaj = substr(htmlspecialchars(trim($_POST['Itaj'])), 0, 30);
  77. $Dogovor = substr(htmlspecialchars(trim($_POST['Dogovor'])), 0, 30);
  78. $Licevoj = substr(htmlspecialchars(trim($_POST['Licevoj'])), 0, 30);
  79. $Tel = substr(htmlspecialchars(trim($_POST['Tel'])), 0, 30);
  80. $Z= Zajuvlenie;
  81. $foot1 = substr(htmlspecialchars(trim($_POST['foot1'])), 0, 30);
  82. $foot2 = substr(htmlspecialchars(trim($_POST['foot2'])), 0, 30);
  83. $noch1 = substr(htmlspecialchars(trim($_POST['noch1'])), 0, 30);
  84. $noch2= substr(htmlspecialchars(trim($_POST['noch2'])), 0, 30);
  85. $Kart = substr(htmlspecialchars(trim($_POST['Kart'])), 0, 30);
  86. $Mesuc = substr(htmlspecialchars(trim($_POST['Mesuc'])), 0, 30);
  87.  
  88. require_once 'PhpWord/Autoloader.php';
  89. \PhpOffice\PhpWord\Autoloader::register();
  90.  
  91. $phpWord = new \PhpOffice\PhpWord\PhpWord();
  92.                        
  93. $shablon = $phpWord->loadTemplate(realpath('files/AnketaTemplate.docx'));
  94. $anketaFileName = str_replace("", "",$Z  ) . '.docx';
  95. $anketaFile = 'files/' . $anketaFileName;
  96.                  
  97. $shablon->setValue('date', date("d.m.y  H:i:s"));
  98.  
  99. $shablon->setValue('familiya', $familiya);
  100. $shablon->setValue('imya', $imya);
  101. $shablon->setValue('otchestvo', $otchestvo);
  102. $shablon->setValue('Ylica', $Ylica);
  103. $shablon->setValue('Dom', $Dom);
  104. $shablon->setValue('Kvartira', $Kvartira);
  105. $shablon->setValue('Korpus', $Korpus);
  106. $shablon->setValue('Podjezd', $Podjezd);
  107. $shablon->setValue('Itaj', $Itaj);
  108. $shablon->setValue('Dogovor', $Dogovor);
  109. $shablon->setValue('Licevoj', $Licevoj);
  110. $shablon->setValue('Tel', $Tel);
  111. $shablon->setValue('foot1', $foot1);
  112. $shablon->setValue('foot2', $foot2);
  113. $shablon->setValue('noch1', $noch1);
  114. $shablon->setValue('noch2', $noch2);
  115. $shablon->setValue('Kart', $Kart);
  116. $shablon->setValue('Mesuc', $Mesuc);
  117.  
  118.  
  119. $shablon->saveAs($anketaFile);
  120.  
  121.  
  122.        
  123.        
  124.  
  125.  
  126. /////////////////////////////////////
  127.  
  128.  // пример использования
  129. $file = "./files/Zajuvlenie.docx"; // файл
  130. $mailTo = "norbitest@rambler.ru"; // кому
  131. $from = "sajt@norbi.ru"; // от кого
  132. $subject = "Заявление"; // тема письма
  133. $message = "Заявление о изменение подписки абонента $familiya"; // текст письма
  134. $r = sendMailAttachment($mailTo, $from, $subject, $message, $file); // отправка письма c вложением
  135. echo ($r)? '      ':'Ошибка. Письмо не отправлено!';
  136. //$r = sendMailAttachment($mailTo, $from, $subject, $message); // отправка письма без вложения
  137. //echo ($r)?'Письмо отправлено':'Ошибка. Письмо не отправлено!';
  138.  
  139. /**
  140. * Отправка письма с вложением
  141. * @param string $mailTo
  142. * @param string $from
  143. * @param string $subject
  144. * @param string $message
  145. * @param string|bool $file - не обязательный параметр, путь до файла
  146. *
  147. * @return bool - результат отправки
  148. */
  149.  
  150. function sendMailAttachment($mailTo, $from, $subject, $message, $file = false){
  151.     $separator = "---"; // разделитель в письме
  152.     // Заголовки для письма
  153.     $headers = "MIME-Version: 1.0\r\n";
  154.     $headers .= "From: $from\nReply-To: $from\n"; // задаем от кого письмо
  155.     $headers .= "Content-Type: multipart/mixed; boundary=\"$separator\""; // в заголовке указываем разделитель
  156.     // если письмо с вложением
  157.     if($file){
  158.         $bodyMail = "--$separator\n"; // начало тела письма, выводим разделитель
  159.         $bodyMail .= "Content-type: text/html; charset='utf-8'\n"; // кодировка письма
  160.         $bodyMail .= "Content-Transfer-Encoding: quoted-printable"; // задаем конвертацию письма
  161.         $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=\n\n"; // задаем название файла
  162.         $bodyMail .= $message."\n"; // добавляем текст письма
  163.         $bodyMail .= "--$separator\n";
  164.         $fileRead = fopen($file, "r"); // открываем файл
  165.         $contentFile = fread($fileRead, filesize($file)); // считываем его до конца
  166.         fclose($fileRead); // закрываем файл
  167.         $bodyMail .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode(basename($file))."?=\n";
  168.         $bodyMail .= "Content-Transfer-Encoding: base64\n"; // кодировка файла
  169.         $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=\n\n";
  170.         $bodyMail .= chunk_split(base64_encode($contentFile))."\n"; // кодируем и прикрепляем файл
  171.         $bodyMail .= "--".$separator ."--\n";
  172.     // письмо без вложения
  173.     }else{
  174.         $bodyMail = $message;
  175.     }
  176.     $result = mail($mailTo, $subject, $bodyMail, $headers); // отправка письма
  177.     return $result;
  178.  
  179. }
  180.  
  181.  
  182. if (!empty($_POST['submit']));
  183. else show_form();
  184.  
  185.  
  186. ?>
  187.  
 
 Top
kotyara1979
Отправлено: 29 Октября, 2014 - 01:11:28
Post Id


Частый гость


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


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




PHP:
скопировать код в буфер обмена
  1. if (!empty($_POST['submit']));
  2. else show_form();


убрать.

после закрытия функции добавить
PHP:
скопировать код в буфер обмена
  1. if (!isset($_POST['familiya']))
  2. {
  3.    show_form();
  4.    exit();
  5. }


Если этот скрипт включен в вышестоящий, то можно использовать return, что бы передать управление в него.


-----
Сделать можно все. Главное одеть каску.
 
 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