Artikel Day 2 sebelumnya telah menjelaskan dan memberikan sedikit pengetahuan bagaimana melakukan pengiriman email secara otomatis setelah user melakukan pendaftaran di form. Untuk artikel tutorial kali ini, penulis akan melakukan sedikit modifikasi di beberapa bagian untuk menambahkan modul sistem aktivasi.
Cara kerja sistem aktivasi pendaftaran ini cukup sederhana :
- Jika user mendaftar untuk pertama kalinya, kolom “confirm” pada database otomatis bernilai “no“. Itu artinya user belum melakukan registrasi
- Sistem akan mengirimkan link notifikasi jika user telah melakukan pengisian form.
- Link notifikasi ini berisi id unique,
- Jika link notifikasi di klik, user akan dibawa ke halaman confirm.php, selanjutnya sistem akan melakukan pemrosesan kolom “confirm” di database menjadi “yes“.
Mari kita lanjutkan tutorial Day 3. Silahkan ikuti tutorial berikut :
Modifikasi mail.php
File mail.php yang telah dibuat sebelumnya telah berhasil kita manfaatkan untuk melakukan proses input data ke database dan mengirimkan email notifikasi (tanpa link konfirmasi). Modifikasi kali ini bertujuan agar file mail.php dapat memproses data sekaligus mengirim email notifikasi beserta link konfirmasinya.
Berikut adalah source code mail.php yang bisa Anda tulis :
<?php error_reporting(0); function rand_string( $length ) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $size = strlen( $chars ); for( $i = 0; $i < $length; $i++ ) { $str .= $chars[ rand( 0, $size - 1 ) ]; } return $str; } include 'config.php'; $nama = $_POST['nama']; $email = $_POST['email']; $id = rand_string( 10 ); if (!isset($nama)) { echo "Lengkap form"; } elseif (!isset($email)) { echo "Lengkapi form"; } else { // cek apakah email sudah terdaftar $query = "SELECT email FROM user WHERE email='$email'"; $find = mysql_query($query); if ($find && mysql_num_rows($find) > 0) { echo "user telah terdaftar"; } else { $add = "insert into user set id='$id', name='$nama', email='$email', confirm='no'"; $set = mysql_query($add); if ($set) { echo "sukses db <br>"; } else { echo "gagal database <br>"; } require_once('library/class.phpmailer.php'); //menginclude librari phpmailer $mail = new PHPMailer(); $body = "<body style='margin: 10px;'> <div style='width: 640px; font-family: Helvetica, sans-serif; font-size: 13px; padding:10px; line-height:150%; border:#eaeaea solid 10px;'> <br> <strong>Terima Kasih Telah Mendaftar</strong><br> <b>Nama Anda : </b>".$nama."<br> <b>Email : </b>".$email."<br> <b>URL Konfirmasi : </b>http://domain-anda.com/mailer/confirm.php?id=".$id."<br> <br> </div> </body>"; $body = eregi_replace("[\]",'',$body); $mail->IsSMTP(); // menggunakan SMTP $mail->SMTPDebug = 1; // mengaktifkan debug SMTP $mail->SMTPAuth = true; // mengaktifkan Autentifikasi SMTP $mail->Host = 'mail.mkhuda.com'; // host sesuaikan dengan hosting mail anda $mail->Port = 25; // post gunakan port 25 $mail->Username = "hello@mkhuda.com"; // username email akun $mail->Password = "coretwoduo"; // password akun $mail->SetFrom('hello@mkhuda.com', 'Hello Mkhuda'); $mail->Subject = "Hello"; $mail->MsgHTML($body); $address = $email; //email tujuan $mail->AddAddress($address, "Hello (Reciever name)"); if(!$mail->Send()) { echo "Oops, Mailer Error: " . $mail->ErrorInfo; } else { echo "Mail Sukses"; } } } ?>
Penjelasan :
- Penambahan kode ada di baris 52, dimana berisi alamat url link beserta id yang di-create otomatis berdasarkan id user yang telah mendaftar.
- Untuk meneruskannya ke email admin, pembaca bisa melakukan modifikasi sendiri pada source diatas di baris 77.
Membuat halaman confirm (konfirmasi)
Sebelumnya kita telah membuat file php bernama confirm.php, seperti yang telah kita edit pada file mail.php bahwa file ini akan memproses link konfirmasi yang dikirimkan ke email user. Berikut adalah file confirm.php yang penulis buat :
<?php include 'config.php'; $confirm = $_GET['id']; if (isset($confirm)) { $query = "SELECT id FROM user WHERE id='$confirm'"; $find = mysql_query($query); if ($find && mysql_num_rows($find) > 0) { $update = "update user set confirm='yes' where user.id='$confirm'"; $set = mysql_query ($update); if ($set) { echo "Konfirmasi sukses"; } } else { echo "ID tidak dikenali"; } } else { echo "Nothing to do"; } ?>
Penjelasan kode :
- Baris nomor 3 kita membuat variabel $confirm, yang berasal dari $_GET[‘id’] (lihat url link konfirmasi).
- Baris 5 dan 6, melakukan pengecekan pada tabel database apakah ID tersebut ada di dalam data.
- Jika data ID tersedia, maka baris 8 sampai 13 akan memproses dengan mengeset data confirm “no” menjadi “yes“.
- Jika data ID tidak ada, maka akan ada notifikasi error.
Uji coba
Berikut adalah tampilan email notifikasi beserta penambahan link konfirmasinya :
- Tampilan email beserta link konfirmasi :
- Informasi tabel database dari kolom “confirm” berubah menjadi “yes“, setelah dilakukan konfirmasi.
Dengan berakhirnya tutorial Form Registrasi dan Sistem Aktivasi Day 3, maka berakhirlah rangkaian day to day tutorial sederhana namun cukup kompleks mengenai PHP Mailer ini. Silahkan uji coba sistem yang baru saja pembaca buat, sekaligus implementasikan dengan sebaik mungkin.
Berikut adalah link tutorial day to day penulis mengenai PHP Mailer ini :
- Day 1 (Hari Pertama) – Untuk persiapan class, database dan konfigurasi sistem
- Day 2 (Hari Kedua) – Pembuatan form dan sistem
- Day 3 (Hari Ketiga) – Implementasi PHP Mailer untuk aktivasi melalui email
Terima kasih. Semoga bermanfaat, Caaooo ! 😀