Script Membuat Shoutbox Sederhana

22

Pada kesempatan ini ciebal coba berbagi tentang cara membuat shoutbox sederhana menggunakan PHP dan dengan 1 tabel pada database, cukup 1 tabel saja untuk menyimpan data-data komentar.

Demo : www.ciebal.com/demo/shoutbox/

Sangat sederhana kan..?
Yaiyalah, pada shoutbox ini hanya ada 4 file saja dengan 1 database yang berisikan 1 tabel.
Baiklah gak perlu basa basi lagi, sekarang kita mulai membuatnya :

1. Buat 4 buah file dengan nama index.php, install.php, database.inc.php, shout.php. Berikut adalah source masing-masing file
-index.php
Source : www.ciebal.com/demo/script/shoutbox/index.txt
-install.php
Source : www.ciebal.com/demo/script/shoutbox/install.txt
-database.inc.php
Source : www.ciebal.com/demo/script/shoutbox/database.txt
-shout.php
Source : www.ciebal.com/demo/script/shoutbox/shout.txt

2. Sekarang kamu upload semua file dalam 1 folder.

3. Kemudian kamu buat database baru, contoh kali ini saya buat database dengan nama shoutbox

4. Edit file database.inc.php sesuai dengan settingan hosting kamu contoh :
<?php
$host    = 'localhost'; // Nama Host Kamu
$user    = 'ciebal'; // User Pada Database
$password = 'ciebalsite'; // Password Database
$name    = 'shoutbox'; // Nama Database
?>

4. Setelah kamu selesai membuat database, kamu akses file install.php, contoh ciebal.com/demo/shoutbox/install.php ini berfungsi untuk membuat tabel baru bernama shouts pada database. Kamu bisa juga membuatnya secara manual.

5. Tabel telah dibuat dan akses file index.php nya, dan jangan lupa untuk menghapus file install.php ;)

6. Shoutbox buatan kamu telah selesai, selanjutnya tinggal kamu kembangkan.. :D

Keterangan :
Pada file shout.php ada beberapa konfigurasi shoutbox yang bisa kamu sesuaikan sendiri, contoh :
Untuk menghindari shotbox kamu diserang oleh hacker dengan menyisipkan tag HTML seperti <div> <img> dll, maka peyaringan kata bisa dilakukan dengan mengedit script berikut :

//pengamanan: mengganti < & > supaya gak di inject
$shout = str_replace("<", " ", $shout);
$shout = str_replace(">", " ", $shout);

Secara default pengunjung tidak bisa menggunakan tag HTML yang ada karakter < & > jadi jika ada yang menggunakan tag HTML maka otomatis akan hilang atau di gantikan dengan kata-kata anda sendiri dengan memasukan kata pada ” “.

Masing-masing file terdapat keterangan dari masing-masing script, jadi kamu bisa mengedit sesuai kebutuhan.. :D

Referensi : Buku php di perpus

Discussion22 Comments

  1. Wah ternyata di shout box saya banyak yang coba inject yah…
    hehehehehe…
    tapi makasih yah buat yang inject coz ini udah ketauan BUGnya..
    ternyata pke JS bisa tembus..
    xixixixixi…

    gw gak protect script JS..
    jadi silahkan edit file shout.php nya aja yah..
    ;)

  2. Bos, kalo pengen ngebatesin jumlah shoutbox jadi 1 orang 1 comment aja utk 1 periode, misal 1 minggu, gimana caranya ?
    Terus, dari comment di atas, maksudnya inject apa ? tembus pake js apa ? n gimana solusinya biar ga tembus pake js ? thx

    • emm, 1 orang 1 minggu..?
      sulit bro, gmna sistem mengetahui klo yang koment itu satu orang..?
      Paling bisa berdasarkan cookie atau IP, kita masukan fungsi get_cookie aja, atau klo protek IP saya belum nyampe mikirnya.. :P
      Untuk pencegahan injek, kita bisa setting pada baris berikut :
      $shout = str_replace(”<”, ” “, $shout);
      $shout = str_replace(”>”, ” “, $shout);
      nah yang saya tebalkan itu yang ingin kita proteksi, dan akan otomatiis dirubah dengan fungsi replace..

  3. numpang nimbrung bang,,
    saya pernah buat shoutbox yg kayak gini, tapi pas di`upload, pemilik hostingnya ribut,,
    kata`nya tuh shoutbox yang buatan sendiri bakal ngebebanin server..
    karena bakal ng`load database terus,,
    mungkin bisa ditambahkan paging dengan ajax, biar lebih ringan,,
    hehee,,
    salam kenal bang,,

  4. kenapa harus pake ginian?
    $shout = str_replace("", " ", $shout);

    pake ini aj
    $shout = strip_tags($shout );
    atau htmlentities($shout);
    pasti gk bisa diberi tag2 html

    ramoreez.wordpress.com

    best regards

Leave a Reply