Direkt ori for u m \ in c N a m a File Fu ngsi
Direkt ori for u m \ in c N a m a File Fu ngsi
index.php
Melakukan redirect ke halam an ut am a
header.php
Menyim pan t am pilan header HTML
fungsi.php
Menyim pan kum pulan fungsi unt uk sem ua halam an
class_forum .php Berisi class halam an berguna unt uk m enam pilkan nom or halam an konfig.php
Menyim pan konfigurasi halam an
kat a_kot or.t xt
Menyim pan daft ar kat a- kat a kot or
Berikut ini adalah sket sa hubungan( Relat ional) dari dari t abel t b_forum , t b_t opik dan t b_reply pada dat abase forum
Tabel t b_forum
id_ for u m j dl_ for u m k e t _ for u m
Tabel t b_t opik
id_ t opik id_ forum
Use r n a m e j dl_ t opik tgl_ post
Tabel t b_reply
id_ r e ply id_ topik id_ forum Usernam e em ail isi_ r e ply tgl_ post
Gam bar 4.13: Sket sa hubungan ant ar t abel forum , t opik dan replay.
Unt uk file yang pert am a sepert i biasa, kit a akan m em buat file unt uk m em bangun dat abasenya t erlebih dahulu. Unt uk it u j alankan PHP DESI GNER 2005 klik m enu File > N e w > SQL kem udian salin kode berikut ini
Script dari file db_ for um .sql
-- Buat database forum -- jika sudah ada hapus
DROP DATABASE IF EXISTS forum ;
CREATE DATABASE forum ;
-- aktifkan database forum USE forum;
-- buat tabel admin CREATE TABLE admin (
username varchar (16) PRIMARY KEY ,
password varchar (32) ) TYPE ='MyISAM';
-- buat tabel forum CREATE TABLE tb_forum (
id_forum varchar (12) PRIMARY KEY ,
jdl_forum varchar (50), ket_forum varchar (255)
) TYPE ='MyISAM';
-- buat tabel topik -- id_topik bertipe auto_icrement artinya selalu ditambah satu -- jika ada penambahan record baru
CREATE TABLE tb_topik (
id_topik int (4) PRIMARY KEY AUTO_INCREMENT ,
id_forum varchar (12), username varchar (16), jdl_topik varchar (100), tgl_post varchar (20) ) TYPE ='MyISAM';
-- buat tabel reply CREATE TABLE tb_reply (
id_reply int (4) PRIMARY KEY AUTO_INCREMENT ,
id_topik int (4), id_forum varchar (12), username varchar (16),
email varchar (50), isi_reply text , tgl_post varchar (20)
) TYPE ='MyISAM';
-- buat tabe member CREATE TABLE member (
username varchar (16) PRIMARY KEY ,
password varchar (32), email varchar (50), posting int (4), last_login varchar (30) ) TYPE ='MyISAM';
-- buat privilege untuk database ini
GRANT SELECT , UPDATE , INSERT , DELETE ON forum .* TO userforum @ localhost IDENTIFIED BY 'forum123';
-- akhir dari file (EOF)
Sim pan pada direkt ori for u m dengan nam a db_ for um .sql. Unt uk m engeksekusi file ini t erdapat dua cara yait u m elalui MySQL Monit or at au lewat phpMyAdm in. Pada MySQL m onit or ket ikkan Sim pan pada direkt ori for u m dengan nam a db_ for um .sql. Unt uk m engeksekusi file ini t erdapat dua cara yait u m elalui MySQL Monit or at au lewat phpMyAdm in. Pada MySQL m onit or ket ikkan
Pada phpMyAdm in, klik t om bol Br ow se lalu arahkan ke alam at sepert i diat as.
File- file berikut nya yang akan kit a buat adalah file yang berada pada direkt ori in c. Kit a m em buat file- file pada direkt ori ini t erlebih dahulu karena file- file pada direkt ori ini akan kit a panggil ham pir pada set iap halam an. Baik unt uk halam an adm inist rat or at aupun halam an pengunj ung.
Tanpa banyak gocek lagi langsung saj a klik File > N e w > PH P pada PHP DESI GNER 2005 lalu ket ik kode berikut
Script dari file in de x .ph p
<? php
/********************************************************** ** Nama File.....: index.php *** ** Penulis.......: Rio Astamal *** ** Tanggal.......: 12-10-2005 *** ** Penjelasan....: melakukan redirect halaman
// Jika user mencoba masuk ke direkori inc kembalikan ia // ke halaman utama header ( 'Location: ../index.php' );
Sim pan pada direkt ori for um \ in c dengan nam a in de x .ph p. Tugas file ini hanyalah m elakukan redirect halam an ket ika ada yang m encoba m asuk ke direkt ori inc.
Berikut nya kit a akan m em buat file yang m enyim pan daft ar kat a- kat a kot or. Unt uk it u buka t ext edit or kesayangan anda ( not epad, wordpad, vi, gedit dan sebagainya) . Ket ik daft ar kat a berikut ,
I si dari file k a t a _ k ot or .t x t ( m aaf, t idak berm aksud pornografi at au kasar)
ass asshole shit bullshit fuck fucker keparat bangsat baj ingan brengsek
Sim pan pada direkt ori in c dengan nam a k a t a _ k ot or .t x t . Anda dapat m enam bahkan kat a- kat a lain yang m enurut anda perlu unt uk difilt er. Karena dalam pik iran saya yang t erpikir hanya sepuluh kat a t ersebut .
Selanj ut nya kit a akan m em buat file yang akan m enam pilkan header HTML pada set iap halam an. Buat file baru pada PHP DESI GNER 2005 lalu ket ik kode berikut ,
Script dari file h e a de r .ph p
<? php
/********************************************************** ** Nama File.....: header.php *** ** Penulis.......: Rio Astamal *** ** Tanggal.......: 17-10-2005 *** ** Penjelasan....: Untuk menampilkan HTML header *** ***********************************************************/
< html > < head > < title > Forum BARENG - Mari Berbagi! </ title > < style >
body { font - family : verdana ; font - size : 11px} td { font - family : verdana ; font - size : 11px}
a { color : #076fd0}
a : visited { color : #076fd0} </ style > </ head > < body >
Sim pan pada direkt ori for um \ in c dengan nam a h e a de r .ph p. File ini hanya bert ugas unt uk m enam pilkan header HTML pada set iap halam an. Kit a nant inya m em anggil file ini dengan include( ) at au require( ) .
File selanj ut nya adalah file yang berfungsi unt uk m enyim pan set t ing t am pilan. Berapa t opik at au reply yang harus dit am pilkan per halam an kit a sim pan pada file ini. Klik File > N e w > PH P unt uk m em buat file PHP baru lalu ket ik kode berikut ,
Script dari file k on fig.ph p
<? php
/********************************************************** ** Nama File.....: konfig.php *** ** Penulis.......: Rio Astamal *** ** Tanggal.......: 12-10-2005 *** ** Penjelasan....: berisi konfigurasi untuk forum *** ***********************************************************/
// cegah pengaksesan langsung dari browser if ( eregi ( 'class_forum.php' , $_SERVER [ 'PHP_SELF' ])) {
// kembalikan ke halaman utama header ( 'Location: ../index.php' ); exit ; // keluar dari rutin script
/********************************************************** Konfigurasi untuk administrator **********************************************************/
// tentukan daftar topik yang ditampilkan per halaman $a_tph = 3; // 3 topik per halaman
// tentukan daftar reply yang ditampilkan per halaman $a_rph = 2; // 2 reply per halaman
// tentukan daftar member yang ditampilkan per halaman $a_mph = 2; // 2 member per halaman
// tentukan letak file yang menyimpan daftar kata kotor
$daftar_kata = 'inc/kata_kotor.txt' ;
/*********************************************************** Konfigurasi untuk user ***********************************************************/
// tentukan daftar topik yang ditampilkan per halaman $u_tph = 3; // 3 topik per halaman
// tentukan daftar reply yang ditampilkan per halaman $u_rph = 2; // 2 reply per halaman
Sim pan pada direkori for um \ in c dengan nam a k on fig.ph p. Kit a m em bagi konfigurasi m enj adi dua bagian yait u unt uk adm inist rat or dan user. Unt uk adm inist rat or nam a variabelnya diawali dengan huruf a sepert i $a_t ph. Dan unt uk user diawali huruf u sepert i $u_t ph. Pada file ini kit a j uga m enent ukan let ak file yang m enyim pan daft ar kat a kot or.
Selanj ut nya kit a akan m em buat file yan gberisi kum pulan fungsi yang kit a pakai pada ham pir set iap halam an pada websit e Forum BARENG. Buat file baru pada PHP DESI GNER 2005 dengan m engklik File > N e w > PH P lalu ket ik kode berikut ini,
Script dari file fu n gsi.ph p
<? php
/********************************************************** ** Nama File....: fungsi.php *** ** Penulis......: Rio Astamal *** ** Tanggal......: 12-10-2005 *** ** Penjelasan...: Kumpulan fungsi untuk forum *** ***********************************************************/
// cegah pengaksesan langsung dari browser if ( eregi ( 'fungsi.php' , $_SERVER [ 'PHP_SELF' ]))
exit ( 'Error: Akses ditolak.' );
// fungsi untuk mengkoneksikan dengan MySQL server function konek_db() {
// untuk username = secure dan password = secure123 @ $koneksi = mysql_connect ( 'localhost' , 'userforum' , 'forum123' ); // jika gagal melakukan koneksi kembalikan false
if (! $koneksi ) return false ; else { // pilih database yang digunakan mysql_select_db ( 'forum' ); return true ; } }
// cek setiap field apa ada yang kosong function cek_field ( $var ) {
foreach ( $var as $field )
{ if ( $field == '' || ! isset ( $field )) return false ; } { if ( $field == '' || ! isset ( $field )) return false ; }
// cek kevalidan email function cek_email ( $email ) { // fungsi untuk mengecek kevalidan email if ( ereg ( '^[a-zA-Z0-9_\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$' , $email )) return true ; else return false ; }
// fungsi untuk menyaring string selain alpabet, numerik dan _ function filter_str ( $string ) { $filter = ereg_replace ( '[^a-zA-Z0-9_]' , '' , $string ); return $filter ; }
// fungsi untuk mengenkripsi string dengan metode MD5 // dan membalik urutannya
function balik_md5 ( $string ) { // untuk membalik urutan string digunakan fungsi strrev() $chiper_text = strrev ( md5 ( $string ) ); return $chiper_text ; }
// fungsi untuk mengecek session function cek_session ( $nama_ses ) { // jika session kosong if (! isset ( $_SESSION [ $nama_ses ])) return false ; // kembalikan nilai false else // jika tidak kosong return true ; // kemblikan nilai true }
// fungsi untuk login function login ( $tabel , $username , $password ) { // lakukan query untuk mencocokkan data $hasil = mysql_query ( "SELECT * FROM $tabel WHERE usernam e='$user name AND password ='$passwo rd'" );
// cek baris yang dikembalikan if ( mysql_num_rows ( $hasil ) == 0) return false ; // data tidak cocok else return true ; // kembalikan nilai true }
// fungsi untuk membuat password secara acak // digunakan untuk mengirim password pada form lupa password
function pass_acak ( $panjang =8) { $kar = "ABCDEFGHJKLMNPRSTUVWXYZ0123456789abchefghjkmnpqrstuvwxyz" ;
// acak karakter srand (( double ) microtime () * 1000000);
// lakukan looping sebanyak $panjang(parameter) // lakukan looping sebanyak $panjang(parameter)
return $pass ; // kembalikan hasil }
// fungsi untuk mengecek kata-kata kotor function filter_kata ( $string , $file ) { // buka file untuk daftar kata kotor $daftar_kata = file ( $file );
// lakukan looping untuk mengganti setiap kata kotor dengan !@#$%
foreach ( $daftar_kata as $kotor )
{ // hilangkan spasi diawal dan diakhir kata $kotor = trim ( $kotor ); // ganti menggunakan fungsi eregi_replace() $string = eregi_replace ( $kotor , '!@#$%' , $string ); }
return $string ; // kembalikan hasil }
// fungsi untuk logout (menghapus session) function logout ( $nama_ses ) { // jika session kosong if (! isset ( $_SESSION [ $nama_ses ])) return false ; // kembalikan false else { // jika tidak kosong hancurkan session tersebut unset ( $_SESSION [ $nama_ses ]); session_destroy ();
return true ; // kembalikan nilai true } }
Sim pan pada direkori for um \ in c dengan nam a fu ngsi.ph p.