Advertisement
akbarnss

Membuat Form Registrasi dengan Notifikasi Email Bukti Regist

Dec 17th, 2016
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.81 KB | None | 0 0
  1. Lihat artikel asli : http://www.akbarnss.com/2016/12/membuat-form-registrasi-dengan-notifikasi-email.html
  2.  
  3. Database
  4. CREATE TABLE `registrasi` (
  5. `id` varchar(20),
  6. `nama` varchar(100),
  7. `alamat` varchar(100),
  8. `email` varchar(50),
  9. PRIMARY KEY (`id`)
  10. )
  11.  
  12.  
  13. Form.html
  14. <html>
  15. <head>
  16. <title>Form Registrasi</title>
  17. </head>
  18. <body>
  19. <h1>Form Registrasi</h1>
  20. <form method="post" action="proses.php">
  21. <table>
  22. <tr><td>Nama Lengkap</td><td>:</td><td><input type="text" name="nama"></td></tr>
  23. <tr><td>Alamat</td><td>:</td><td><input type="text" name="alamat"></td></tr>
  24. <tr><td>Email</td><td>:</td><td><input type="text" name="email"></td></tr>
  25. </table>
  26. <input type="submit" name="submit" value="REGISTER">
  27. </form>
  28. </body>
  29. </html>
  30.  
  31. koneksi.php
  32. [tpcolor=#FF0000]<?php
  33. // isikan parameter koneksi databasenya
  34. $dbhost = "...";
  35. $dbuser = "...";
  36. $dbpass = "...";
  37. $dbname = "...";
  38.  
  39. mysql_connect($dbhost, $dbuser, $dbpass);
  40. mysql_select_db($dbname);
  41. ?>[tpcolor=#FF0000][/tpcolor]
  42.  
  43. [tpb]proses.php[/tpb]
  44. [tpcolor=#0000FF]<?php
  45. // koneksi ke database
  46. include 'koneksi.php';
  47.  
  48. include 'email.php';
  49.  
  50. // function untuk mengenerate ID registrasi unik
  51. // dengan format 'TRX-----', mis: TRX00001
  52. function newID()
  53. {
  54. $query = "SELECT max(id) as maxID FROM registrasi";
  55. $hasil = mysql_query($query);
  56. $data = mysql_fetch_array($hasil);
  57. $idMax = $data['maxID'];
  58. $noUrut = (int) substr($idMax, 3, 5);
  59. $noUrut++;
  60. $id = 'TRX' . sprintf("%05s", $noUrut);
  61. return $id;
  62. }
  63.  
  64. $nama = $_POST['nama'];
  65. $alamat = $_POST['alamat'];
  66. $email = $_POST['email'];
  67. // mengenerate ID registrasi baru
  68. $id = newID();
  69.  
  70. // menyimpan data registrasi ke db
  71. $query = "INSERT INTO registrasi (id, nama, alamat, email) VALUES ('$id', '$nama', '$alamat', '$email')";
  72. $hasil = mysql_query($query);
  73. if ($hasil) {
  74. echo "Registrasi sukses, form bukti registrasi akan dikirim ke email Anda";
  75. // kirim email dg attachment file PDF bukti registrasi
  76. kirimEmail($id, $email);
  77. }
  78. else echo "Registrasi gagal";
  79. ?>[/tpcolor]
  80.  
  81. [tpb]pdf.php[/tpb]
  82. [tpcolor=#FF0000]<?php
  83. // membuat file PDF registrasi berdasarkan ID
  84.  
  85. include 'koneksi.php';
  86. include 'fpdf.php';
  87.  
  88. $id = $_GET['id'];
  89.  
  90. $query = "SELECT * FROM registrasi WHERE id = '$id'";
  91. $hasil = mysql_query($query);
  92. $data = mysql_fetch_array($hasil);
  93.  
  94. $pdf=new FPDF('P','mm','A4');
  95. $pdf->AddPage();
  96. $pdf->SetFont('Times','',12);
  97. $pdf->Cell(30,10,'ID Registrasi',0,0,'L');
  98. $pdf->Cell(5,10,':',0,0,'L');
  99. $pdf->Cell(100,10,$data['id'],0,1,'L');
  100. $pdf->Cell(30,10,'Nama Lengkap',0,0,'L');
  101. $pdf->Cell(5,10,':',0,0,'L');
  102. $pdf->Cell(100,10,$data['nama'],0,1,'L');
  103. $pdf->Cell(30,10,'Alamat Rumah',0,0,'L');
  104. $pdf->Cell(5,10,':',0,0,'L');
  105. $pdf->Cell(100,10,$data['alamat'],0,1,'L');
  106. $pdf->Cell(30,10,'E-mail',0,0,'L');
  107. $pdf->Cell(5,10,':',0,0,'L');
  108. $pdf->Cell(50,10,$data['email'],0,1,'L');
  109. $pdf->Output();
  110. ?>
  111.  
  112.  
  113. email.pdf
  114. <?php
  115. // function untuk membaca konten file
  116. function get_content($url){
  117. $data = curl_init();
  118. curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
  119. curl_setopt($data, CURLOPT_URL, $url);
  120. $hasil = curl_exec($data);
  121. curl_close($data);
  122. return $hasil;
  123. }
  124.  
  125. // function pengiriman email dengan attachment
  126. function kirimEmail($id, $email)
  127. {
  128. // setting nama file attachment
  129. $namafile = "registrasi.pdf";
  130. // MIME type file PDF sbg attachment
  131. $fileType = "application/x-pdf";
  132.  
  133. // setting pesan intro di email
  134. $introPesan = "Terimakasih sudah melakukan registrasi. Bukti registrasi ada di attachment email ini, silakan disimpan.";
  135.  
  136. // membaca isi file pdf registrasi berdasarkan id
  137. // yang dihasilkan oleh script pdf.php
  138. $fileContent = get_content("http://localhost/fpdf/pdf.php?id=".$id);
  139.  
  140. // membuat attachment di email
  141. $semi_rand = md5(time());
  142. $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
  143.  
  144. $headers = "MIME-Version: 1.0\n" .
  145. "Content-Type: multipart/mixed;\n" .
  146. " boundary=\"{$mime_boundary}\"";
  147.  
  148. $pesan = "This is a multi-part message in MIME format.\n\n" .
  149. "--{$mime_boundary}\n" .
  150. "Content-Type: text/html; charset=\"iso-8859-1\"\n" .
  151. "Content-Transfer-Encoding: 7bit\n\n" .
  152. $introPesan . "\n\n";
  153.  
  154. $data = chunk_split(base64_encode($fileContent));
  155.  
  156. $pesan .= "--{$mime_boundary}\n" .
  157. "Content-Type: {$fileType};\n" .
  158. " name=\"{$namafile}\"\n" .
  159. "Content-Disposition: attachment;\n" .
  160. " filename=\"{$namafile}\"\n" .
  161. "Content-Transfer-Encoding: base64\n\n" .
  162. $data . "\n\n" .
  163. "--{$mime_boundary}--\n";
  164.  
  165. // proses mengirim email dengan attachment
  166. mail($email, "Konfirmasi Registrasi", $pesan, $headers);
  167. }
  168. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement