ผมเอาบทความของ Version เดิมมาให้น่ะครับ
การป้องกันคำหยาบและกรองข้อมูลที่ต้องการ
ตัวอย่างต่อไปนี้จะเป็นการตรวจสอบคำหยาบโดยการค้นหาคำหยาบในประโยค
และแทนทีด้วยเครื่องหมาย * ในคำหยาบที่ต้องการ
ชื่อฐานข้อมูล mydatabase
รายละเอียดของตาราง
CREATE TABLE `rude` (
`id` int(3) NOT NULL auto_increment,
`rude_name` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=13 ;
#
# dump ตาราง `rude`
#
INSERT INTO `rude` VALUES (1, 'เย็ด');
INSERT INTO `rude` VALUES (2, 'ควาย');
INSERT INTO `rude` VALUES (3, 'หมากฝรั่ง');
INSERT INTO `rude` VALUES (4, 'กระบือ');
INSERT INTO `rude` VALUES (5, 'งำ ๆๆ');
INSERT INTO `rude` VALUES (6, 'ไก่');
INSERT INTO `rude` VALUES (7, 'กุก');
INSERT INTO `rude` VALUES (8, 'แม่มึง');
INSERT INTO `rude` VALUES (9, 'ควย');
INSERT INTO `rude` VALUES (10, 'บักหำ');
INSERT INTO `rude` VALUES (11, 'fuck');
INSERT INTO `rude` VALUES (12, 'มึง');
Code (PHP)
<?php
$host="localhost";
$username="";
$password="";
$db="mydatabase";
$tb="rude";
mysql_connect( $host,$username,$password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ ");
mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้");
function CheckRude($temp){
$wordchange = ("<font color=red>*</font>") ; // ข้อความที่ต้องการแทนที่คำหยาบ
$sql = "select * from rude";
$dbquery = mysql_query($sql);
$num_rows = mysql_num_rows($dbquery);
$i=0;
while ($i < $num_rows)
{
$result= mysql_fetch_array($dbquery);
$temp = eregi_replace ("$result[rude_name]" ,$wordchange ,$temp);
$i++;
}
return ( $temp ) ;
}
$msg="พวกมึงเป็นยังไงบ้าง กูสบายดีนะ มึงสบายดีไหม"; // ข้อความที่ต้องการตรวจสอบ
$msg_new=CheckRude($msg);
echo $msg_new;
?>