Membuat Filter Pada Form Php

Filter dalam form sangat penting sekali saat anda merancang buku tamu, ada beberapa teknik yang bisa digunakan.antara lain :
1. Penggunaan Captcha

Penjelasan :
Captcha Biasanya kode ini bersifat random. Teknik penggunaan captcha ini bertujuan untuk memverifikasi apakah pengisi buku tamu merupakan mesin spam atau manusia bisanya berupa angka atau nomor acak.

Sedangkan Filter biasanya hanya digunakan untuk pencegahan spam masuk seperti kata - kata kotor : sex, xxx, porn , atau link - link tertentu yang tidak boleh di masukkan di dalam form. teknik filter ini mencegah form dari komentar atau inputan yang berbau tidak sopan yang dikirim oleh manusia. secara otomatis akan direject atau di tolak dan tidak akan di simpan ke dalam database.

Pembahasan kita mulai dari membuat struktur tabel untuk menyimpan data form terlebih dahulu.

CREATE TABLE form (
  id int(11) auto_increment,
  nama varchar(20),
  email varchar(20),
  tanggal date,
  komentar text,
  PRIMARY KEY  (id)
)

Field ‘id’ digunakan untuk pembeda antar isi form dengan nomor masing - masing. Field ini berfungsi untuk membedakan ketika anda mengedit komentar form yang masuk, atau fitur untuk menghapus komenter. Pengeditan dan penghapusan komentar tersebut berdasarkan ID komentar. Untuk mudahnya, ID komentar ini kita buat menggunakan auto increment.
Field ‘nama’ nantinya akan diisi oleh nama pengisi buku tamu. Field ‘email’ terkait dengan alamat email pengisi. Dalam buku tamu nanti akan disimpan pula tanggal pengisian komentar.
Selanjutnya kita akan membuat file PHP.

form.html
<h1>Form</h1>
<form method="post" action="submit.php">
<table border="0">
  <tr><td>Nama Anda</td><td>:</td><td><input type="text" name="nama" /></td></tr>
  <tr><td>Email Anda</td><td>:</td><td><input type="text" name="email" /></td></tr>
  <tr><td>Komentar</td><td>:</td><td><textarea name="komentar"></textarea></td></tr>
  <tr><td></td><td></td><td><input type="submit" name="submit" value="Submit" /><input type="reset" name="reset" value="Reset" /></td></tr>
</table>
</form>

Keterangan:
untuk field tanggal, nantinya akan digenerate secara otomatis oleh function yang akan membaca tanggal saat pengisian komentar (tanggal yang ada di komputer pengguna).
Form telah dibuat, selanjutnya kita mulai mengcoding untuk memproses pengiriman form ke database.

submit.php
<?php
// daftar yang di filter
$badWords = array("sex","xxx","viagra","http","porn");

// membaca isian buku tamu dengan strip_tags()

$namaPengisi = strip_tags($_POST['nama']);
$emailPengisi = strip_tags($_POST['email']);
$isi = strip_tags($_POST['komentar']);

// membaca tanggal ketika pengisian

$tanggal = date("Y-m-d");

// asumsikan komentarnya tidak mengandung bad word

$status = "tak ada";

// cek keberadaan setiap bad word dalam komentar

for($i = 0; $i <= count($badWords)-1; $i++)
{
   if (!(strpos($isi, $badWords[$i]) == false))
{
      // jika ditemukan sebuah bad word dalam komentar, maka status menjadi 'ada'
      // proses looping langsung dihentikan

      $status = "ada";
      break;
   }
}

// cek status akhir
// bila status bad word tidak ada, maka data isian tersimpan ke database
// bila ada, maka direject

if ($status == "tak ada")
{
   mysql_connect("localhost", "root", "root");
   mysql_select_db("contoh");
   $query = "INSERT INTO guestbook(nama, email, tanggal, komentar)
             VALUES ('$namaPengisi', '$emailPengisi', '$tanggal', '$isi')";
   $hasil = mysql_query($query);

   if ($hasil) echo "Terimakasih telah mengisi buku tamu";
   else echo "Pengisian buku tamu gagal";
}
else
{
   echo "Maaf komentar Anda mengandung kata-kata yang tidak sopan";
}

?>

Silakan script di atas anda coba dikembangkan lagi dengan di tambah captcha, jika bermanfaat silakan di share
Selamat Mencoba...... :-)


0 Response to "Membuat Filter Pada Form Php"

Posting Komentar