Senin, 20 Oktober 2008

Contoh Program Error atau Masih Bermasalah

Tidak jarang kita menemukan program yang masih terdapat error, atau masalah lain yang menjadikan tampilan tidak enak dilihat. Sesuai tugas, pada postingan kali ini, saya mencoba memberikan contoh program yang masih terdapat errornya atau minimal bila sudah dipublish contentnya tidak enak dilihat. Program dibuat dengan PHP dan database MySQL. Program tersebut umumnya berupa form isian yang akhirnya dieksekusi/disubmit dan hasilnya akan tertayang di halaman web, misalnya form isian login, buku tamu, dan komentar. Untuk contoh kali ini, form isian untuk memberikan komentar dari suatu artikel.

Alur Program, Data (table) dan Program yang Diperlukan

Untuk lebih fokus pada materi, data artikel diasumsikan sudah masuk dan bisa dibaca melalui web. Pembaca tinggal memilih judul dan kemudian akan tertayang artikel secara lengkap beserta form untuk memberikan komentar terhadap artikel tersebut. Form komentar berada di bawah artikel lengkap. Pembaca mengisi form komentar, yang terdiri atas elemen nama, email, dan isi komentar, kemudian disubmit masuk database dan tertayang di web.

Untuk memenuhi kebutuhan data, maka kita buat database kecil (pada contoh ini database diberi nama ‘dbtugas’) yang terdiri dari dua tabel yaitu tabel artikel dan table komentar. Tabel artikel berisi elemen data id artikel, nama penulis, judul dan artikel lengkap. Sedangkan table komentar untuk menampung elemen data id komentar, nama dan email pemberi komentar serta isi komentar .

Berikut ini adalah sql untuk membuat kedua tabel di atas :

create table artikel (id int(5) primary key auto_increment, penulis varchar(50), judul varchar(50) not null, isi (text );
create table komentarnya (id int(5) primary key auto_increment, nama_komentar varchar(40), email_komentar varchar(30), isi_komentar varchar(200), id_artikel int(50));


Untuk memudahkan penelusuran, program yang diperlukan bagi dalam script php yang disimpan dalam 4 file php, sebagai berikut :

- configurasi.php, yaitu berfungsi untuk membuat koneksi ke database.

- utama.php, yaitu untuk menampilkan semua judul artikel dan potongan text isi artikelnya.

- artikel_lengkap.php, untuk menayangkan salah satu artikel (yang dipilih oleh pembaca) secara lengkap, serta menampilkan form isian komentar. Program ini merupakan hasil dari link pada halaman utama.php.

- komentar.php, yaitu program untuk menampilkan komentar dan berisi form komentar. Program berfungsi sebagai ‘fungsi’ yang dipanggil oleh program artikel_lengkap.php.

Script detail dari masing-masing file adalah, sebagai berikut :

- configurasi.php

$host = "localhost";

$username = "root";

$password = "";

$databasename = "dbtugas";

$connection = mysql_connect($host, $username, $password);

mysql_select_db($databasename, $connection) ;


- utama.php












- artikel_lengkap.php














- komentar.php




















Tampilan halaman web

Tampilan daftar judul dan text singkat artikel, http://localhost/prgerror/utama.php









Form Isian komentar, http://localhost/prgerror/utama.phpartikel_lengkap.php?hal_detail=1














Tayangan daftar komentar, http://localhost/prgerror/artikel_lengkap.php?hal_detail=1








Dari tampilan di atas, ternyata program tersebut masih bermasalah, antara lain :

- elemen isian email belum divalidasi, misalnya dengan fungsi yang menyaring bila isian belum benar, contoh : dengan cek karakter /(.{2,})(@)(.+)(\.)(\w){2,4}/i;

- elemen isian terutama text komentar belum divalidasi karakter yang biasa digunakan script html, misalnya mereplace <,> dengan ( atau ).

Sekilas memang hanya terlihat di tampilan, tetapi ternyata bila dicek di database, isian (karakter-karakter) yang tidak dikehendaki tersebut juga tersimpan di database (hasil capture di bawah).








Bila data tersebut diquery dan ditampilkan bukan pada browser maka akan diperoleh data apa adanya (berisi karakter yang tidak diinginkan tersebut). Banyak dari kita yang telah menyadari hal ini, tetapi……..bisa jadi dianggap no problem !

Tidak ada komentar: