Bahaudin

28 Desember 2009

Tutorial PHP

Filed under: Tutorial — bahaudin @ 2:00

Fungsi-fungsi untuk Mem-filter Input Form

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

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

1. database

create
database 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. file
koneksi.php

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

3. file
gb.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><a
href=”lihatgb.php”>[ Lihat Data Tamu ]</a>

4. file
proses.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(“insert
into guestbook
values(NULL,’$nama’,’$email’,’$pesan’)”);
if($queryAddGb)
{ echo”<font color=red><b>Guestbook
berhasil disimpan</b></font>”;
echo”<meta http-equiv=\”refresh\” content=\”2;
url=./gb.html\”>”;
exit; }
else
{ echo”<font
color=red><b>Data gagal disimpan</b></font>”;
echo”<meta http-equiv=\”refresh\” content=\”2;
url=./gb.html\”>”;
exit; }

}


if(isset($error))

{ echo”<font
color=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 coba
menginputkan data buku tamu. Misal :

Percobaan
1

Masukkan spasi
yang banyak pada semua data nama, email dan pesan. Misal, tekan tombol spasi
mpe 100X , he..he….
Hasilnya, akan keluar pesan data tidak lengkap. Mengapa begitu? Karena sebelum
divalidasi, inputan spasi akan dihilangkan oleh fungsi trim. Akibatnya data
akan kosong dan keluarlah pesan data tidak lengkap.

Percobaan
2

Masukkan data berikut:
Nama :
<b><i><u>Phii</u></i></b>
Email : phii@poesing.bgt
Pesan : <b><font color=red>Ayo belajar PHP, biar
bisa bikin web sendiri</font></b>

Setelah berhasil
menginputkan data, silahkan klik [ lihat data tamu ]. Hasilnya, tag2 HTML akan
dilenyapkan. Kenapa bisa hilang? Karena sebelum divalidasi, tag2 HTML akan
dilenyapkan oleh fungsi strip_tags, sehingga yang akan tersimpan dalam tabel
adalah string yang bersih dari tag2 HTML.

Percobaan
3

Jadikan komentar
pada bagian script filter yang menggunakan trim dan strip_tags. Lalu, hilangkan
komentar pada script filter yang menggunakan trim dan htmlentities.
Masukkan data
yang sama dengan percobaan 2. Hasilnya, tag2 HTML akan ditampilkan, tapi hanya
sebagai teks biasa. Mengapa begitu? Karena sebelum divalidasi, tag2 HTML akan
difilter oleh fungsi htmlentities, sehingga hanya akan dibaca sebagia string biasa.

Percobaan
4

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

Kesimpulan, ketiga fungsi di atas
bisa kita gunakan untuk menyaring atau memfilter masukan terhadap form di web
kita, 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 php dengan judul Fungsi – fungsi untuk memfilter input form

5 Komentar »

  1. Berkunjung ke blog OM baha neh. Bulik yayah sm mbah putri kecelakaan, alhamdulillah mereka selamat, motornya aja yg mencong.

    Komentar oleh Layya — 3 Maret 2008 @ 5:36 | Balas

  2. yap, tengkiyu. komentare jd nretep puanjang. njajal pake domain dan hosting sndiri, gari ga bs lhe ngoprek. yo wis ditelantarkan.

    Komentar oleh DOZAN — 23 Juni 2008 @ 11:24 | Balas

  3. tutorialnya di update n bikin yang lebih detail n runyun ya…biar enak di pelajarinya…

    Komentar oleh bunda — 5 Mei 2010 @ 8:58 | Balas

    • OK. deh,, nanti tutorialnya di update biar lebih detail n runyun ya..biar enak dipelajarinya…

      Komentar oleh baha — 5 Mei 2010 @ 9:11 | Balas

  4. mantap ni tutor😀

    Komentar oleh Dedikj — 5 Juni 2010 @ 7:21 | Balas


RSS feed for comments on this post. TrackBack URI

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Buat situs web atau blog gratis di WordPress.com.

%d blogger menyukai ini: