Peluang Bisnis

0
Posted on 1:23 PM by Unknown and filed under

Fungsi - fungsi untuk memfilter input form

trim() digunakan untuk menghapus spasi di kanan dan kiri teks. htmlentities() digunakanuntuk mengkonversi karakter-karakter tertentu dalam tag HTML, emm..kok ribetya, pokoknya hasil fungsi ini akan menerjemahkan tag-tag HTML sebagai teksbiasa. strip_tags digunakanuntuk menghilangkan tag-tag HTML dan PHP dalam sebuah string.

Ketiga fungsi di atas bisadigunakan untuk memfilter input/masukan form pada website kita, misalnya padaform buku tamu. Untuk contoh penggunaannya, siapkan file2 berikut:

1. database

createdatabase db_gb ; use db_gb; create table guestbook (id int unsigned not null primary key auto_increment, nama varchar(50) not null, email varchar(100) not null, pesan text not null)

2. filekoneksi.php <?php $host="localhost"; $uname="root";$pass=""; $db="db_gb"; $koneksi=mysql_connect($host,$uname,$pass); mysql_select_db($db,$koneksi); ?>

3. filegb.html

<form method="post"action="proses.php"> Nama *<br><input type="text" name="nama"size="34"><br> Email *<br><input type="text" name="email"size="34"><br> Pesan *<br><textarea name="pesan" rows="8"cols="40"></textarea> <br>*) Wajib diisi <br> <input type="reset" value="Reset"name="kosongkan"> <input type="submit" value="Kirim"name="kirim"> </form> <p><ahref="lihatgb.php">[ Lihat Data Tamu ]</a> 4. fileproses.php <?php include'koneksi.php'; if(isset($_POST['kirim']) &&($_POST['kirim']==='Kirim')) { /*--- filter input dg kombinasi fungsi trim dan strip_tags ---*/ $nama=trim(strip_tags($_POST['nama'])); $email=trim(strip_tags($_POST['email'])); $pesan=trim(strip_tags($_POST['pesan'])); /*--- filter input dg kombinasi fungsi trim dan htmlentities ---*/ /* $nama=trim(htmlentities($_POST['nama'])); $email=trim(htmlentities($_POST['email'])); $pesan=trim(htmlentities($_POST['pesan'])); */ /* ---------------------- tanpa filter ------------------------*/ /* $nama=$_POST['nama']; $email=$_POST['email']; $pesan=$_POST['pesan']; */

if(($nama=='') ($email=='') ($pesan=='')) $error= "Data tidak lengkap.<br>";

if(($nama!='') && ($email!='') && ($pesan!='')) { $queryAddGb=mysql_query("insertinto guestbook values(NULL,'$nama','$email','$pesan')"); if($queryAddGb) { echo"<font color=red><b>Guestbookberhasil disimpan</b></font>"; echo"<meta http-equiv=\"refresh\" content=\"2;url=./gb.html\">"; exit; } else { echo"<fontcolor=red><b>Data gagal disimpan</b></font>"; echo"<meta http-equiv=\"refresh\" content=\"2;url=./gb.html\">"; exit; } }

if(isset($error)) { echo"<fontcolor=red><b>$error</b></font>"; echo"<meta http-equiv=\"refresh\" content=\"2;url=./gb.html\">"; exit; }

}?> 5. file lihatgb.php

<?php include'koneksi.php'; $queryGb = mysql_query("select *from guestbook"); $jmlGb = mysql_num_rows($queryGb); if($jmlGb==0) { echo"Data tamu masih kosong"; } else { $queryTampil=mysql_query("select *from guestbook order by id desc"); echo"<p>DATA TAMU<p>"; while($dataGb=mysql_fetch_row($queryTampil)) { echo"".wordwrap($dataGb[1],70,"<br>",1)."<br>"; echo"".wordwrap($dataGb[3],85,"<br>",1).""; echo"<hr width=60% align=left>"; }} ?>

Ok, setelah semua siap mari kita cobamenginputkan data buku tamu. Misal :

Percobaan1 Masukkan spasiyang banyak pada semua data nama, email dan pesan. Misal, tekan tombol spasimpe 100X , he..he....Hasilnya, akan keluar pesan data tidak lengkap. Mengapa begitu? Karena sebelumdivalidasi, inputan spasi akan dihilangkan oleh fungsi trim. Akibatnya dataakan kosong dan keluarlah pesan data tidak lengkap.

Percobaan2 Masukkan data berikut: Nama :<b><i><u>Phii</u></i></b> Email : phii@poesing.bgt Pesan : <b><font color=red>Ayo belajar PHP, biarbisa bikin web sendiri</font></b> Setelah berhasilmenginputkan data, silahkan klik [ lihat data tamu ]. Hasilnya, tag2 HTML akandilenyapkan. Kenapa bisa hilang? Karena sebelum divalidasi, tag2 HTML akandilenyapkan oleh fungsi strip_tags, sehingga yang akan tersimpan dalam tabeladalah string yang bersih dari tag2 HTML.

Percobaan3 Jadikan komentarpada bagian script filter yang menggunakan trim dan strip_tags. Lalu, hilangkankomentar pada script filter yang menggunakan trim dan htmlentities. Masukkan datayang sama dengan percobaan 2. Hasilnya, tag2 HTML akan ditampilkan, tapi hanyasebagai teks biasa. Mengapa begitu? Karena sebelum divalidasi, tag2 HTML akandifilter oleh fungsi htmlentities, sehingga hanya akan dibaca sebagia string biasa.

Percobaan4 Jadikan komentarpada bagian script filter yang menggunakan trim dan htmlentities. Kali ini, kita akan menginputkan data tanpa fliter, maka hilangkan komentar pada script tanpafilter. Inputkan data sama seperti percobaan 1. Hasilnya? Lihat sendiri ya… Setelah itu inputkan data sama seperti percobaan 2. Hasilnya? Lihat sendirijuga ya.he...he..

Kesimpulan, ketiga fungsi di atasbisa kita gunakan untuk menyaring atau memfilter masukan terhadap form di webkita, terutama dari pengunjung web kita yang doyan banget nginjek eh..maksudnya nginject form dengan HTML injection

*) Kalo mo nyoba percobaan 4 dg kode HTML yang bisa digunakan untuk deface, tanyakan saja pada Al-k
*) Untuk data email, silahkan ditambahkan sendiri validasinya, kaya’e dah pernah dibahas ma Anggi. Cari sendiri ya

Akhir kata, cukup sekian dulu belajar PHP dari Phii, lain kali ditambah lagi. “BANYAK JALAN MENUJU ROMA” Mungkin ketiga fungsi PHP yang barusan kita bahas bukan cara satu2 nya untuk memfilter masukan, jika ada temen2 yang mengetahui cara lain, mohon ditambahkan. Terima Kasih… Sumber dari situs phpdengan judul Fungsi - fungsi untuk memfilter input form
0
Responses to ...

Post a Comment

Terima Kasih Sudah Berkunjung,
Silahkan Isi Komentar