Advertisement
Guest User

Untitled

a guest
Jul 7th, 2017
460
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.50 KB | None | 0 0
  1. <?php
  2. require_once './config.php'; // подключаем скрипт
  3. use DompdfDompdf;
  4.  
  5. if($_POST){
  6.  
  7. // подключаемся к серверу
  8. $link = mysqli_connect($host, $user, $password, $database)
  9. or die("Ошибка " . mysqli_error($link));
  10.  
  11. // экранирования символов для mysql
  12. $name = htmlentities(mysqli_real_escape_string($link, $_POST['name']));
  13. $age = htmlentities(mysqli_real_escape_string($link, $_POST['age']));
  14. $sex = htmlentities(mysqli_real_escape_string($link, $_POST['sex']));
  15. $email = htmlentities(mysqli_real_escape_string($link, $_POST['email']));
  16. $phone = htmlentities(mysqli_real_escape_string($link, $_POST['phone']));
  17.  
  18. // создание строки запроса
  19. $query ="INSERT INTO run_people (id ,name, age, sex, email, phone)
  20. VALUES (NULL, '$name','$age', '$sex', '$email','$phone')";
  21.  
  22. // выполняем запрос
  23. $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
  24.  
  25.  
  26. $id_query ="SELECT MAX(id) FROM run_people ";
  27.  
  28. $result = mysqli_query($link, $id_query) or die("Ошибка " . mysqli_error($link));
  29.  
  30. $rows = mysqli_num_rows($result); // количество полученных строк
  31.  
  32.  
  33. while ($row = mysqli_fetch_row($result)) {
  34. $id .= "$row[0]";
  35. }
  36.  
  37. $name_query ="SELECT name FROM `run_people` WHERE id = (select max(id) from run_people)";
  38.  
  39. $result = mysqli_query($link, $name_query) or die("Ошибка " . mysqli_error($link));
  40.  
  41. $rows = mysqli_num_rows($result); // количество полученных строк
  42.  
  43.  
  44. while ($row = mysqli_fetch_row($result)) {
  45. $name .= "$row[0]";
  46. }
  47.  
  48.  
  49. $html = '<html>'
  50. .'<body>'
  51. .'<style>header,img{width:80%;height:200px}body,html{padding:0!important;margin:0!important}body{font-family:DejaVu Sans;padding:0;margin:0}h1,header h2{text-align:center}header,img{margin:0 0 0 30px}header{display:block;position:relative;background:url(img/bg_pdf_head.jpg) top center no-repeat;padding:50px 0 0;background-size:100%}header h2{font-size:60px;margin:0 auto;display:block}h1{font-size:203px;margin:0 0 31px 30px;width:80%}</style>'
  52. .'<header>'
  53. .'<h2>'. $name .'</h2>'
  54. .'</header>'
  55. .'<h1>'. $id .'</h1>'
  56. .'<img src="./img/bg_pdf_footer.jpg">'
  57. .' </body>'
  58. .'</html>';
  59.  
  60.  
  61. $dompdf = new DOMPDF();// Создаем обьект
  62.  
  63. $dompdf->loadHtml($html);
  64.  
  65.  
  66. $dompdf->setPaper('A4', 'landscape');
  67.  
  68.  
  69. $dompdf->render();
  70. $output = $dompdf->output(0);
  71. file_put_contents("./file.pdf", $output);
  72.  
  73. }
  74. // пример использования
  75. $file = "./file.pdf"; // файл
  76. $mailTo = 'runo1194@gmail.com'; // кому
  77. $from = 'runo1194@gmail.com'; // от кого
  78. $subject = "Test file"; // тема письма
  79. $message = "Тестовое письмо с вложением"; // текст письма
  80. $r = sendMailAttachment($mailTo, $from, $subject, $message, $file); // отправка письма c вложением
  81. echo ($r)?'Письмо отправлено':'Ошибка. Письмо не отправлено!';
  82. //$r = sendMailAttachment($mailTo, $from, $subject, $message); // отправка письма без вложения
  83. //echo ($r)?'Письмо отправлено':'Ошибка. Письмо не отправлено!';
  84.  
  85. function sendMailAttachment($mailTo, $from, $subject, $message, $file = false){
  86. $separator = "---"; // разделитель в письме
  87. // Заголовки для письма
  88. $headers = "MIME-Version: 1.0rn";
  89. $headers .= "From: $fromnReply-To: $fromn"; // задаем от кого письмо
  90. $headers .= "Content-Type: multipart/mixed; boundary="$separator""; // в заголовке указываем разделитель
  91. // если письмо с вложением
  92. if($file){
  93. $bodyMail = "--$separatorn"; // начало тела письма, выводим разделитель
  94. $bodyMail .= "Content-type: text/html; charset='utf-8'n"; // кодировка письма
  95. $bodyMail .= "Content-Transfer-Encoding: quoted-printable"; // задаем конвертацию письма
  96. $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=nn"; // задаем название файла
  97. $bodyMail .= $message."n"; // добавляем текст письма
  98. $bodyMail .= "--$separatorn";
  99. $fileRead = fopen($file, "r"); // открываем файл
  100. $contentFile = fread($fileRead, filesize($file)); // считываем его до конца
  101. fclose($fileRead); // закрываем файл
  102. $bodyMail .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode(basename($file))."?=n";
  103. $bodyMail .= "Content-Transfer-Encoding: base64n"; // кодировка файла
  104. $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=nn";
  105. $bodyMail .= chunk_split(base64_encode($contentFile))."n"; // кодируем и прикрепляем файл
  106. $bodyMail .= "--".$separator ."--n";
  107. // письмо без вложения
  108. }else{
  109. $bodyMail = $message;
  110. }
  111. $result = mail($mailTo, $subject, $bodyMail, $headers); // отправка письма
  112. return $result;
  113. }
  114.  
  115. <?php
  116. require_once 'dompdf/autoload.inc.php';
  117. require_once './config.php'; // подключаем скрипт
  118. use DompdfDompdf;
  119.  
  120.  
  121. error_reporting(E_ALL & ~E_NOTICE);
  122.  
  123.  
  124. if($_POST){
  125.  
  126. // подключаемся к серверу
  127. $link = mysqli_connect($host, $user, $password, $database)
  128. or die("Ошибка " . mysqli_error($link));
  129.  
  130. // экранирования символов для mysql
  131. $username = htmlentities(mysqli_real_escape_string($link, $_POST['name']));
  132. $age = htmlentities(mysqli_real_escape_string($link, $_POST['age']));
  133. $sex = htmlentities(mysqli_real_escape_string($link, $_POST['sex']));
  134. $email = htmlentities(mysqli_real_escape_string($link, $_POST['email']));
  135. $phone = htmlentities(mysqli_real_escape_string($link, $_POST['phone']));
  136.  
  137. // создание строки запроса
  138. $query ="INSERT INTO run_people (id ,username, age, sex, email, phone)
  139. VALUES (NULL, '$username','$age', '$sex', '$email','$phone')";
  140.  
  141. // выполняем запрос
  142. $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
  143.  
  144.  
  145. $id_query ="SELECT MAX(id) FROM run_people ";
  146.  
  147. $result = mysqli_query($link, $id_query) or die("Ошибка " . mysqli_error($link));
  148.  
  149. $rows = mysqli_num_rows($result); // количество полученных строк
  150.  
  151. while ($row = mysqli_fetch_row($result)) {
  152. $id .= "$row[0]";
  153. }
  154.  
  155.  
  156. $id;
  157.  
  158. $html = '<html>'
  159. .'<body>'
  160. .'<style>span h2,span h3{transform:rotate(270deg)}div,header,span,span h2,span h3{position:relative;display:block}header h2,span h2,span h3{display:block}div,h1,header,img{width:850px}h1,header h2,span h2,span h3{text-align:center}header,img{height:200px;margin:0 0 0 30px}body,html{padding:0!important;margin:0!important}body{font-family:DejaVu Sans;padding:0;margin:0}header{background:url(img/bg_pdf_head.jpg) top center no-repeat;padding:50px 0 0;background-size:100%}header h2{font-size:60px;margin:0 auto}h1{font-size:203px;margin:0 0 31px 30px}div{float:left}span{float:right;background:url(img/bg_pdf_right.jpg) 100% 100% no-repeat;background-size:cover;height:793px;width:220px}span h2{font-size:70px;margin-top:80px}span h3{font-size:30px;margin-top:250px}</style>'
  161. .'<div>'
  162. .'<header>'
  163. .'<h2>'. $username .'</h2>'
  164. .'</header>'
  165. .'<h1>'. $id .'</h1>'
  166. .'<img src="./img/bg_pdf_footer.jpg">'
  167. .'</div>'
  168. .'<span>'
  169. .'<h3>'.$username
  170. .'</h3>'
  171. .'<h2>'. $id .'</h2>'
  172. // .'<img src="./img/bg_pdf_right.jpg" width="100%">'
  173. .'</span>'
  174. .' </body>'
  175. .'</html>';
  176.  
  177.  
  178. $dompdf = new DOMPDF();// Создаем обьект
  179.  
  180. $dompdf->loadHtml($html);
  181.  
  182.  
  183. $dompdf->setPaper('A4', 'landscape');
  184.  
  185.  
  186. $dompdf->render();
  187. $output = $dompdf->output(0);
  188. file_put_contents("./file.pdf", $output);
  189. mysqli_close($link);
  190. }
  191.  
  192. $file = "./file.pdf"; // файл
  193. $mailTo = 'runo1194@gmail.com'; // кому
  194. $from = 'runo1194@gmail.com'; // от кого
  195. $subject = "Test file"; // тема письма
  196. $message = "Тестовое письмо с вложением"; // текст письма
  197.  
  198. $separator = "---"; // разделитель в письме
  199. // Заголовки для письма
  200. $headers = "MIME-Version: 1.0rn";
  201. $headers .= "From: $fromnReply-To: $fromn"; // задаем от кого письмо
  202. $headers .= "Content-Type: multipart/mixed; boundary="$separator""; // в заголовке указываем разделитель
  203. // если письмо с вложением
  204. if($file){
  205. $bodyMail = "--$separatorn"; // начало тела письма, выводим разделитель
  206. $bodyMail .= "Content-type: text/html; charset='utf-8'n"; // кодировка письма
  207. $bodyMail .= "Content-Transfer-Encoding: quoted-printable"; // задаем конвертацию письма
  208. $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=nn"; // задаем название файла
  209. $bodyMail .= $message."n"; // добавляем текст письма
  210. $bodyMail .= "--$separatorn";
  211. $fileRead = fopen($file, 'r');
  212. $contentFile = fread($fileRead, filesize($file)); // считываем его до конца
  213. fclose($fileRead); // закрываем файл
  214. $bodyMail .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode(basename($file))."?=n";
  215. $bodyMail .= "Content-Transfer-Encoding: base64n"; // кодировка файла
  216. $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=nn";
  217. $bodyMail .= chunk_split(base64_encode($contentFile))."n"; // кодируем и прикрепляем файл
  218. $bodyMail .= "--".$separator ."--n";
  219. // письмо без вложения
  220. }
  221. $result = mail($mailTo, $subject, $bodyMail, $headers); // отправка письма
  222.  
  223. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement