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.