believe with your eyes, not with your ears

Sabtu, 15 Mei 2010

Ngeblok link / url dan sensor kata pada AJAX Shoutbox

Sebelumnya mungkin para Joomlers, pernah mencoba atau setidaknya menggunakan komponent AJAX Shoutbox.
Komponen ini sesungguhnya merupakan implementasi dari web versi 2.0 yang cukup bagus.
Mampu membuat pengunjung website kita bisa berinteraksi secara lebih baik lagi, jika dibanding dengan teknologi web versi sebelumnya.
Namun ternyata terdapat kelemahan yang cukup "mengganggu" pada komponen AJAX Shoutbox ini.

Kelemahannya :
a. Tidak adanya fasilitas yang men-disable URL / LINK yang dimasukkan dalam kolom komentarnya
b. Tidak adanya sensor kata-kata kasar / jorok / atau sejenisnya.

Berikut ini saya mencoba berbagi "ilmu" bagaimana caranya memodifikasi module AJAX Shoutbox sehingga bisa mengatasi kedua kelemahan di atas.
Jika ada telah mengistall module / component AJAX Shoutbox ini,

masuklah ke dalam direktori / folder : modules

Gunakan Editor misalnya Dreamweaver, buka / open file bernama : mod_shoutbox.php

Carilah beberapa sytax PHPscript berikut ini di dalam file mod_shoutbox.php :

// Register globals - Thanks Karan et Etienne
$jal_lastID    = isset($_GET['jal_lastID']) ? $_GET['jal_lastID'] : "";
$jal_user_name = isset($_POST['n']) ? $_POST['n'] : "";
$jal_user_url  = isset($_POST['u']) ? $_POST['u'] : "";
$jal_user_text = isset($_POST['c']) ? $_POST['c'] : "";
$jalGetChat    = isset($_GET['jalGetChat']) ? $_GET['jalGetChat'] : "";
$jalSendChat   = isset($_GET['jalSendChat']) ? $_GET['jalSendChat'] : "";


Sisipkanlah fungsi berikut ini (copy / paste) ke dalamnya sesudah sytax PHPScript di atas :

function sensorkata($kalimat) {
   $linkterlarang = array(".com","www","http","script","href","div","frame");
   $kataterlarang = array("anjing","bangsat","monyet","goblok","tolol","bodoh","tahi","tai","perek","banci","gila","pantat","pelacur","gigolo","kerok", "ndeso","asu",
   "kontol","memek","berak","boker","pipis","kencing","bloon");
   $boleh = true;
   for ($i = 0; $i
       if (preg_match("/".$linkterlarang[$i]."/i", mysql_real_escape_string($kalimat))) {$boleh = false;}
   }
   for ($i = 0; $i
       if (preg_match("/".$kataterlarang[$i]."/i", mysql_real_escape_string($kalimat))) {$boleh = false;}
   }
   return $boleh;
}



Sekarang anda scroll sehingga menemukan fungsi yang bernama :
function jal_addData($jal_user_name,$jal_user_text,$jal_user_url)

Scroll ke bawah lagi sampai anda menemukan perintah :
 mysql_query("INSERT INTO ".$prefix."liveshoutbox (time,name,text,url) VALUES ('".time()."','".mysql_real_escape_string($jal_user_name)."','".mysql_real_escape_string($jal_user_text)."','".mysql_real_escape_string($jal_user_url)."')", $conn);

Ubahlah perintah tersebut (copy / paste) dengan perintah berikut ini (di-replace saja) :
if (sensorkata(mysql_real_escape_string($jal_user_text))==true) {
           mysql_query("INSERT INTO ".$prefix."liveshoutbox (time,name,text,url) VALUES ('".time()."','".mysql_real_escape_string($jal_user_name)."','".mysql_real_escape_string($jal_user_text)."','".mysql_real_escape_string($jal_user_url)."')", $conn);
        }



Save / simpan seluruh perubahan di atas, lalu coba anda test Shoutbox tersebut (di website anda), sekarang anda mendapatkan Shoutbox yang "bersih" dari Link / URL iklan / spam / sejenisnya. Disamping itu kata-kata kurang pantas (disensor) juga tidak dapat dimasukkan ke dalam Shoutbox ini.

Bagaimana jika masih ada kata2x "kasar / jorok" lolos dari sensor ini ??
Gampang banget, anda tinggal menambahkan kata2x yg lolos sensor tersebut ke dalam fungsi :
function sensorkata($kalimat)

tepatnya di dalam variabel : $kataterlarang
gampang kann ??

Semoga Bermanfaat

Tidak ada komentar:

Posting Komentar