Oleh: Agung Novian
| 1 February 2012
Apakah Anda pernah bergabung pada suatu komunitas maya? Ketika Anda mendaftar pada suatu komunitas maya, biasanya Anda akan dikirimi e-mail berisi link yang harus Anda klik untuk dapat mengaktifkan akun Anda. Dan setelah Anda mengklik link tersebut, maka status akun Anda sudah teraktifasi dan Anda dapat mengakses komunitas tersebut secara keseluruhan.
Artikel berikut ini akan menjelaskan bagaimana proses tersebut terjadi. Untuk hal ini Anda memerlukan komponen tambahan yaitu class PHPMailer, yang berguna sebagai alat untuk mengirimkan e-mail, yang bisa Anda unduh di sini: Unduhan PHPMailer, Anda hanya akan membutuhkan sebuah file saja dari project PHPMailer, yaitu: “class.phpmailer.php”.
Baiklah, sebelum melangkah ke pengkodean, siapkan sebuah database lebih dulu, sebagai contoh, saya membuat database dengan nama “k31669_register”. Kemudian buatlah sebuah tabel dengan nama “member”, buatlah 5 (lima) buah field dalam tabel tersebut, yaitu:
1. id -> INT -> Primary -> Auto Increment
2. username -> VARCHAR(20)
3. password -> VARCHAR(32)
4. regkey -> VARCHAR(32)
5. status -> INT
Berikut query untuk membuat tabel tersebut:
CREATE TABLE IF NOT EXISTS `member` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(32) NOT NULL,
`regkey` varchar(32) NOT NULL,
`status` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Buatlah sebuah folder dengan nama “register”, salin file “class.phpmailer.php” ke folder “register”. Pada folder “register”, buatlah sebuah file dengan nama “register.php”. File ini berguna untuk menampilkan form pendaftaran, tuliskan skrip sebagai berikut:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form name="frmRegister" id="frmRegister" method="post" action="action.php">
<div>
<label for="txtEmail">E-mail: </label>
<input type="text" name="txtEmail" value="" />
</div>
<div>
<label for="txtUserName">User Name: </label>
<input type="text" name="txtUserName" value="" />
</div>
<div>
<label for="txtPassword">Password: </label>
<input type="password" name="txtPassword" value="" />
</div>
<div>
<label for="txtConfirm">Confirm: </label>
<input type="password" name="txtConfirm" value="" />
</div>
<div>
<input type="submit" name="register" id="register" value="Register" />
</div>
</form>
</body>
</html>
Anda membutuhkan sebuah file php lagi untuk menjalankan proses dari form pendaftaran, yaitu file “action.php”, buatlah file tersebut, ketikkan skrip berikut ini:
<?php
include ("config.php");
if (isset($_POST['register'])){
$email = $_POST['txtEmail'];
$username = $_POST['txtUserName'];
$password = $_POST['txtPassword'];
$confirm = $_POST['txtConfirm'];
//Validasi data inputan
if (empty($username)) exit ("User Name jangan kosong");
if (empty($password)) exit ("Password jangan kosong");
if (empty($confirm)) exit ("Confirm jangan kosong");
if ($confirm != $password) exit ("Confirm tidak sama dengan Password");
if (empty($email)) exit ("Alamat e-mail jangan kosong");
//Enkripsi password dengan MD5
$md5Pass = md5($password);
//Cek apakah username atau e-mail sudah terdaftar
$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$query = "SELECT * FROM `member` WHERE `username`='$username' OR email='$email'";
$sql = $db->query($query);
$count = $sql->num_rows;
if ($count) exit ("Alamat e-mail sudah terdaftar");
//Bikin kode aktivasi
$regkey = md5($username . $email);
//Simpan ke database
$query = "INSERT INTO `member` (`username`, `password`, `regkey`)
VALUES ('$username', '$md5Pass', '$regkey')";
$sql = $db->query($query);
//Bikin link aktivasi untuk dikirim ke E-mail
//Ganti http://diajar.kodingen.com/ dengan nama domain Anda
$genlink = "http://diajar.kodingen.com/register/checkreg.php?regkey=$regkey";
//Subject/Judul E-Mail
$subject = "Pendaftaran Anggota Baru Diajar.Com";
//Isi E-Mail
$content = "<h2>Terima kasih telah mendaftar di Diajar.Com</h2>";
$content .= "<p>Berikut ini diinformasikan data login Anda:</p>";
$content .= "<br/>";
$content .= "<table>";
$content .= "<tr><td>User Name</td><td>:</td><td>$username</td></tr>";
$content .= "<tr><td>Password</td><td>:</td><td>$password</td></tr>";
$content .= "</table>";
$content .= "<br/>";
$content .= "<p>Akun Anda belum aktif, silakan klik link di bawah ini untuk mengaktifkannya:</p>";
$content .= "<a href='$genlink'>$genlink</a>";
//Kirimkan e-mail dengan PHPMailer
$sendmail = sendMail($username, $email, $subject, $content);
//Jika kirim e-mail berhasil, maka
if ($sendmail=="1") echo "Pendaftaran berhasil silakan periksa INBOX E-Mail Anda.";
}
//Fungsi untuk mengirim E-Mail menggunakan phpmailer
function sendMail($penerima, $address, $subject, $content){
require ('class.phpmailer.php');
$sender = "admin@diajar.com";
$name = "Admin Diajar.Com";
$mail = new PHPMailer();
$body = $content;
//$body = eregi_replace("[\]",'',$body);
$mail->AddReplyTo($sender,$name);
$mail->SetFrom($sender,$name);
$mail->AddReplyTo($sender,$name);
$mail->AddAddress($address, $penerima);
$mail->Subject = $subject;
$mail->MsgHTML($body);
if(!$mail->Send()) {
return "0";
} else {
return "1";
}
}
?>
Jangan lupa untuk membuat file konfigurasi untuk mengkoneksikan PHP dengan database yang telah Anda buat. Buatlah file degan nama “config.php”, kemudian ketik skrip berikut ini:
<?php
//sesuaikan dengan nama database, pengguna,
//dan password yang telah Anda buat
define('DB_NAME', 'k31669_register');
define('DB_USER', 'k31669_register');
define('DB_PASS', 'test123456');
define('DB_HOST', 'localhost');
?>
Dengan file-file di atas, Anda sudah bisa membuat proses registrasi, sekarang tinggal membuat suatu cara untuk menangani proses aktifasi ketika seorang anggota mengklik link yang dikirim via e-mail.
Buatlah sebuah file dengan nama “checkreg.php”, kemudian ketik skrip berikut ini:
<?php
include ("config.php");
if (isset($_GET['regkey'])){
$regkey = $_GET['regkey'];
//Validasi regkey pada database
$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$query = "SELECT * FROM `member` WHERE `regkey`='$regkey'";
$sql = $db->query($query);
$count = $sql->num_rows;
if ($count){
while ($baris = $sql->fetch_object()) {
$username = $baris->username;
}
//Update record pada database
$query = "UPDATE `member` SET `status`='1' WHERE `username`='$username'";
$sql = $db->query($query);
echo "Selamat $username, akun Anda sudah aktif sekarang.";
}
}
?>
Selesai. Bagaimana cara mengujicobanya? Anda tidak bisa mengujicoba pada server lokal, karena proses pengiriman e-mail tidak akan berhasil. Anda harus mengujinya pada hosting Anda.
Langkah pengujian:
1. Buka file “register.php” melalui internet browser, misal: http://diajar.kodingen.com/register/register.php.

2. Isikan data yang diperlukan, sebagai contoh, gunakan alamat e-mail yang Anda punya. kemudian klik tombol Register.
3. Periksa kotak masuk pada web e-mail Anda, Anda akan mendapatkan sebuah e-mail baru dengan judul “Pendaftaran Anggota Baru Diajar.Com”.

4. Buka e-mail tersebut, kemudian klik link yang ditampilkan.

Ditulis di:
Fundamental,
Pemograman,
PHP
Penanda:
kodingen,
mail,
PHP,
phpmailer,
register
« [VB Classic] Menghitung Hari Libur Keagamaan
| [VB Classic] iLabelMaker v1.0 »
Menarik sekali, saya akan coba menerapkan di web saya. Semoga berhasil, thanx…,sukses selalu Diajar.com