PHP Flat-File GuestBook

Tabel Konten
  1. Ketika Data Dirasa telah Penuh 
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.

20 Komentar

  • admin

    keren kang , saya unduh file projectnya :)

  • Unknown

    mantab kang tutornya

  • Unknown

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

  • BOTmaz

    anbil dulu filenya ,, makasih mas rohman

  • Willy Prasetyo

    mantap om, keren dah.., :-bd

  • XC Network

    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

    • Taufik Nurrohman

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

  • RizkyKR

    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 :)

    • Taufik Nurrohman

      Saya harus jawab yang mana?

    • Taufik Nurrohman

      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.

    • RizkyKR

      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.

  • Djatmika

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

    • Taufik Nurrohman

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

  • kang

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

    • Taufik Nurrohman

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

  • Tarmizi Hardianto

    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

    • Taufik Nurrohman

      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 …
      • Tarmizi Hardianto

        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

  • Unknown

    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

Komentar telah ditutup.