Validasi Email (PHP)

Validasi Email (PHP)

Validasi email dengan menggunakan PHP pada sebuah form, merupakan alternatif lain selain menggunakan HTML.

Mereferensi dari situs w3schools.com, agar email yang diinputkan itu valid maka terlebih dahulu, hasil inputan akan di filter.

<?php
$email = "[email protected]";

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
  echo("$email is a valid email address");
} else {
  echo("$email is not a valid email address");
}
?> 

Penjelasan dari skrip diatas adalah apabila email yang diinputkan tidak valid, maka akan ditampilkan pesan “email tidak cocok” dan sebaliknya, disini menggunakan fungsi filter PHP, FILTER_VALIDATE_EMAIL.

Bisa ditambahkan juga perintah SANITIZE_EMAIL agar validasi lebih ketat, atau bisa juga dengan melakukan pengecekan apakah email tersebut sudah terdaftar atau belum.

Fungsi filter_var() berfungsi untuk melakukan validasi dan membersihkan data dari inputan luar (eksternal) yang berasal dari inputan user melalui form.

Sangat disarankan agar pada saat membuat sebuah form, web aplikasi yang dibuat diberikan sebuah validasi, agar lebih aman dan terhindar dari kerusakan serta hal-hal yang tidak diinginkan.

Berikut ini file-file yang akan dibuat:

  1. index.php
  2. koneksi.php
  3. proses-insert.php
  4. tampil-data.php

index.php

<!DOCTYPE html>
<html>
<head>
	<title>Validasi Email dengan PHP</title>
</head>
<body>

	<h4>Form Input Data</h4>

	<form action="proses-insert.php" method="post">
		<label>Nama Lengkap</label>
		<input type="text" name="namaku">
		<label>Email</label>
		<input type="text" name="mailku">
		<input type="submit" name="save" value="SIMPAN">
		<input type="reset" name="cancel" value="BATAL">
	</form>

	<br>

	<?php
		include "tampil-data.php";
	?>


</body>
</html>

koneksi.php

<?php
	
	$server = "localhost";
	$user = "root";
	$pass = "";
	$database = "db_email";

	$konek = mysqli_connect($server, $user, $pass, $database);

proses-insert.php

<?php
	include "koneksi.php";

	$nm = $_POST["namaku"];
	$em = $_POST["mailku"];


	echo "Nama: $nm dan Email: $em";
	echo "<br>";

	if(filter_var($em, FILTER_VALIDATE_EMAIL)){
		//echo "Email cocok";
		// periksa atau cocokan email dengan yang ada di database
		$cek_email = "SELECT * FROM tbl_email WHERE mail='$em'";
		$query = mysqli_query($konek, $cek_email);
		if(mysqli_num_rows($query) > 0){
			echo "Email sudah terdaftar!";
		} else {
			//echo "Email sukses di insert!";
			$sql = "INSERT INTO tbl_email(nama, mail) VALUES('$nm', '$em')";
			$query = mysqli_query($konek, $sql) or die (mysqli_error($konek));
		}
	} else {
		echo "Email tidak cocok";
	}

	echo "<br>";
	echo "<a href='index.php'>Kembali ke Home</a>";

?>

tampil-data.php

<table border="1">
	<thead>
		<tr>
			<th>No</th>
			<th>Nama Lengkap</th>
			<th>Email</th>
		</tr>
	</thead>
	<tbody>
		<?php
			include "koneksi.php";

			$no = 1;

			$sql = "SELECT * FROM tbl_email ORDER BY id_email DESC LIMIT 5";
			$query = mysqli_query($konek, $sql) or die (mysqli_error($konek));
			while($data = mysqli_fetch_array($query)){
				$nm = $data["nama"];
				$em = $data["mail"];

				echo "<tr>
						<td>$no</td>
						<td>$nm</td>
						<td>$em</td>
					</tr>";
					$no++;

			}
		?>
		
	</tbody>
</table>

<br>

<em style="color: red; ">*Email yang akan ditampilkan akan dibatasi sebanyak 5 data terakhir.</em>