Saturday, February 8, 2014

PHP Flat-File GuestBook

Flat-File Guestbook in PHP
Tampilan Buku Tamu

Saya membuat aplikasi Buku Tamu tanpa basis data dengan PHP. Semua data disimpan di dalam sebuah file TXT sebagai pengganti basis data. Ide asli diambil dari sini.

Pada versi Saya, Saya tidak menggunakan captcha gambar, melainkan hanya menggunakan tantangan matematika yang lebih sederhana namun relatif aman. Kode ini dituliskan secara baru, mulai dari awal dan bukan merupakan hasil modifikasi. Beberapa fitur baru yang Saya berikan:

  • Memungkinkan pengguna untuk menambahkan URL.
  • Tanggal penerbitan tersedia, dan akan ditampilkan di pojok kanan atas secara normal.
  • Memungkinkan pengguna untuk membagikan pesan secara individual melalui tautan permanen.
  • Memungkinkan administrator untuk membuat “database” baru tanpa harus menghapus data yang lama.
  • Memungkinkan administrator dan pengguna untuk memuat data lama melalui parameter URL berupa nama file.
  • Sistem keamanan yang lebih baik:
    • Pengguna wajib menjawab tantangan matematika sederhana.
    • Pembatasan jumlah karakter pada setiap bidang.
    • Secara otomatis mengubah kode HTML menjadi entitas HTML untuk keamanan, dan hanya akan menerjemahkan kode HTML yang diperbolehkan saja.
    • Pesan kesalahan akan tampil lebih jelas, serta data yang telah pengguna masukkan sebelumnya ke dalam formulir akan tetap tersimpan di sana sebelum pengguna berhasil mengirimkan pesannya.
    • Tautan di dalam pesan akan terhapus secara otomatis.

Lihat Demo Sementara Unduh Berkas Lihat Kode Sumber

Ekstrak file unduhan untuk mendapatkan folder guestbook. Masukkan folder tersebut beserta isinya ke dalam folder public_html atau www pada server lokal Anda. Tidak perlu konfigurasi khusus. Sekali pasang langsung jalan! Jika Anda ingin melakukan konfigurasi, maka itu hanya sebatas pada penamaan “database”, pengaturan panjang karakter maksimal dan penyesuaian teks pesan peringatan.

Jika sudah selesai, buka alamat http://localhost/guestbook/index.php pada peramban untuk melihat hasilnya.

Tidak ada fitur emotikon. Terlalu berlebihan untuk diterapkan pada aplikasi yang sederhana dan bukan merupakan kebutuhan primer. Anda bisa dengan mudah membuatnya sendiri melalui perintah preg_replace() seperti ini:

$message = preg_replace(
    array(
        '/( |>)\:\-?\)/',
        '/( |>)\:\-?D/',
        '/( |>)\:\-?\)/',
        ...
        ...
    ),
    array(
        '$1<img src="emoticons/smile.gif" alt=":)">',
        '$1<img src="emoticons/laugh.gif" alt=":D">',
        '$1<img src="emoticons/sad.gif" alt=":(">',
        ...
        ...
    ),
$message);

Ketika Data Dirasa telah Penuh

Ketika Anda merasa bahwa file TXT yang Anda buat sudah terlalu besar ukurannya, atau membuat proses muat halaman menjadi lambat, Anda bisa mengatasinya dengan cara mengganti nilai $database dengan nama yang baru untuk menciptakan file TXT baru tanpa harus menghapus yang lama. Untuk memuat data yang lama ke dalam halaman buku tamu agar bisa ditampilkan ke publik (katakanlah Anda telah membuat pengaturan khusus agar pengguna tidak bisa melihat file dengan format TXT), Anda bisa menambahkan parameter data dengan nilai berupa nama “database” seperti ini:

http://localhost/guestbook/index.php?data=database-003

Atau kalau memang data-data di dalam buku tamu Anda itu tidak penting, Anda bisa menghapus file tersebut begitu saja kalau mau. Semua kode sudah Saya lengkapi dengan penjelasan. Silakan dipelajari atau digunakan jika dirasa berguna.

Labels: ,

20 Comments:

At Saturday, February 8, 2014 at 5:12:00 PM GMT+7, Blogger admin said...

keren kang , saya unduh file projectnya :)

 
At Sunday, February 9, 2014 at 8:15:00 AM GMT+7, Blogger Unknown said...

mantab kang tutornya

 
At Sunday, February 9, 2014 at 6:10:00 PM GMT+7, Blogger Unknown said...

keren mas , ane juga buat buku tamu pake php tapi gak seperti itu tapi lain :D

 
At Thursday, February 13, 2014 at 7:32:00 PM GMT+7, Blogger Rz Bot said...

anbil dulu filenya ,, makasih mas rohman

 
At Thursday, February 13, 2014 at 7:40:00 PM GMT+7, Blogger Willy Prasetyo said...

mantap om, keren dah.., :-bd

 
At Friday, March 28, 2014 at 12:04:00 AM GMT+7, Blogger XC Network said...

kalo mau di pasang di blog gimana caranya?
di upload kemana nie biar bisa tampil kayak di demo?
saya coba upload ke googlecode malah tampil kode php aja.

mohon bantuanya

 
At Saturday, March 29, 2014 at 2:41:00 PM GMT+7, Blogger Taufik Nurrohman said...

Coba daftar ke IDHostinger → http://www.idhostinger.com

 
At Tuesday, July 29, 2014 at 1:23:00 PM GMT+7, Blogger Rizky Kurniawan said...

keren mas, sudah saya coba dan berhasil :-bd
oya mas, kira kira bagaimana membuat fungsi auto update atau memuat postingan baru dengan interval? dan juga emoticon dengan modal popup?
saya kurang begitu paham soal php, mohon bantuannya :)

 
At Monday, August 4, 2014 at 7:56:00 AM GMT+7, Blogger Taufik Nurrohman said...

Saya harus jawab yang mana?

 
At Tuesday, August 5, 2014 at 3:33:00 PM GMT+7, Blogger Taufik Nurrohman said...

Untuk dasar modal popup bisa dilihat di sini. Kode emotikon biasanya dibuat dalam HTML secara terpisah, kemudian URL halaman HTML tersebut digunakan sebagai pengganti alamat web di tautan yang Saya berikan di atas.

PS: Lain kali kalau mau buat pertanyaan satu-satu saja dan yang sekiranya bisa terjawab di area komentar, dan yang sesuai topik ya mas?

Untuk membuat posting jadi bisa diterbitkan secara otomatis (pakai robot) itu sudah ada banyak tutorialnya, dan berbahasa Indonesia pula. Soalnya blogger usil itu biasanya asalnya dari Indonesia. Kalau mas mau buka alamat www.google.com lalu mengetik kata kunci ‘blogspot auto post’ pasti langsung ketemu.

 
At Wednesday, August 6, 2014 at 6:48:00 PM GMT+7, Blogger Rizky Kurniawan said...

Sip :-bd, saya bukan bermaksud berkomentar diluar topik dan bukan berharap solusi saya terjawab disini dengan penuh. :\ ~x(
yang saya maksud adalah bagaimana teknik untuk membuat buku tamu ini dapat memuat chat terbarunya dengan interval???
mohon bantuannya.

 
At Saturday, October 18, 2014 at 4:15:00 PM GMT+7, Blogger Djatmika said...

mas biar datanya disimpan di database localhost gimana? saya pake reactor server

 
At Friday, October 24, 2014 at 8:51:00 PM GMT+7, Blogger Taufik Nurrohman said...

→ https://www.google.com/search?q=membuat+buku+tamu+dengan+database

 
At Monday, December 21, 2015 at 8:27:00 AM GMT+7, Blogger kang said...

Mas buku tamu ini bisa d pasang di blog gak yah? Caranya gimana?? ....

 
At Sunday, January 24, 2016 at 6:33:00 AM GMT+7, Blogger Tarmizi Hardianto said...

jazakallaahu khairan..
nama anda saya cantumkan dalam Readme.text di project saya...


bagaimana menambah auto sitemap generator guestbook ini dalam format xml. supaya bisa tampak di google search engine?

terimakasih

 
At Tuesday, January 26, 2016 at 3:46:00 PM GMT+7, Blogger Taufik Nurrohman said...

Bisa. Buku tamunya di-host-kan di web lain, lalu halamannya dipanggil pakai <iframe> seperti shoutbox.

 
At Tuesday, January 26, 2016 at 3:56:00 PM GMT+7, Blogger Taufik Nurrohman said...

Terimakasih banyak. Sebenarnya setiap data yang masuk sudah terpola sendiri di dalam berkas, setiap item dipisahkan oleh karakter ==, dan setiap item dari item dipisahkan oleh karakter \n. Tinggal diparse pakai PHP explode() saja sudah cukup untuk membagi-bagi data menjadi array. Setelah itu, jangan lupa untuk mengeset header sebagai berkas XML sebelum hasil keluaran ditampilkan:

header('Content-Type: application/xml; charset=utf-8');

… konten XML di sini …

 
At Sunday, June 5, 2016 at 8:35:00 AM GMT+7, Blogger Tarmizi Hardianto said...

Assalamualaikum mas

Bagaimana cara rewrite file yang ada


Bisanya 1 baris saja dengan form berikut
Jika di save/update maka post ke 2 tidak muncul






You should not give any space between line or your data will not be displayed properly






Salam Hormat
Tarmizi Hardianto

bisa juga balas via email
tarmizi.hardianto (at) gmail .com

 
At Friday, June 9, 2017 at 7:24:00 PM GMT+7, Blogger Unknown said...

mas kalau untuk submit gak usah jawab hitunganya gmn ya dan terus untuk yg nama otomatis terisi dari database misal si a sedang login lalu nama itu sudah otomatis terisi a jadi dia hanya tinggal isi aja

 
At Friday, June 9, 2017 at 11:43:00 PM GMT+7, Blogger Taufik Nurrohman said...

Kapan-kapan Saya perbaharui.

 

Post a Comment

<< Home