ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingสอบถามเรื่องของการเขียน php กับการกรองคำหยาบหน่อยครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: สอบถามเรื่องของการเขียน php กับการกรองคำหยาบหน่อยครับ  (อ่าน 2669 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« เมื่อ: 28 เมษายน 2012, 12:12:04 »

กรอกข้อความผ่าน textarea มา โดยส่งค่า message เข้ามาเพื่อตรวจสอบกับตารางที่ชื่อว่า rudetb
โดย rudetb มีฟิลด์ชื่อ rudetxt เก็บข้อมูลเป็นแถว ๆ แถวละ 1 คำของคำหยาบ

ต้องการส่ง message มาเช็คว่าตรงกับฟิลด์ rudetxt ของตาราง rudetb ทั้งหมดรือไม่ ถ้ามีคำใด ๆ ที่ตรงกัน (แม้จะแค่คำเดียว)

อยากให้ขึ้น alert ขึ้นมาว่า ข้อความไม่เหมาะสม ตรวจสอบด้วย

รบกวนทีนะครับ

ขอบคุณครับ  wanwan017 wanwan017
บันทึกการเข้า

เหนื่อย..
LifeGood
สมุนแก๊งเสียว
*

พลังน้ำใจ: 45
ออฟไลน์ ออฟไลน์

กระทู้: 574



ดูรายละเอียด
« ตอบ #1 เมื่อ: 28 เมษายน 2012, 14:07:40 »

โค๊ด:
<?php
$rudetxt 
= array("มะเฟือง""มะนาว");
$text 'แตงไทย แตงกวา ขนุน น้อยหน่า พุทรา มังคุด ละมุด ลำไย มะเฟือง มะไฟ มะกรูด มะนาว มะพร้าว ส้มโอ ฟักแฟง แตงโม ไชโย โห่หิ้ว';
$replace '***';
foreach(
$rudetxt as $word){
$text str_replace($word$replace$text);
}
echo 
$text;
?>

แบบนี้รึเปล่าครับ
บันทึกการเข้า

รับงาน PHP Programming ฟรีแลนซ์ จากโปรแกรมเมอร์ประสบการณ์กว่า 8 ปี ชำนาญเฟรมเวิร์ค CI ปรับแต่งได้ทุก CMS รับทั้งงานเล็กและงานใหญ่ในราคาเพื่อนฝูง รับทีละงาน ไม่พอกหางหมู เสร็จตรงเวลาแน่นอน แจ้งความคืบหน้าและอัพเดทความคืบหน้าของงานทุก 3 วัน สนใจ PM มาครับ!!!
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #2 เมื่อ: 28 เมษายน 2012, 19:44:10 »

โค๊ด:
<?php
$rudetxt 
= array("มะเฟือง""มะนาว");
$text 'แตงไทย แตงกวา ขนุน น้อยหน่า พุทรา มังคุด ละมุด ลำไย มะเฟือง มะไฟ มะกรูด มะนาว มะพร้าว ส้มโอ ฟักแฟง แตงโม ไชโย โห่หิ้ว';
$replace '***';
foreach(
$rudetxt as $word){
$text str_replace($word$replace$text);
}
echo 
$text;
?>

แบบนี้รึเปล่าครับ

ขอบคุณครับ  wanwan017 แต่รูปแบบข้างต้น เป็นการแทนทีอ่ะครับ
ผมต้องการแค่ เจอคำใดคำหนึ่งในตารางก็แสดงว่า พบข้อความไม่เหมาะสมเท่านั้นครับ ไม่ต้องเอาไปแทนทีครับ แค่พบก็ฟ้องเท่านั้น   wanwan020 wanwan020
บันทึกการเข้า

เหนื่อย..
LifeGood
สมุนแก๊งเสียว
*

พลังน้ำใจ: 45
ออฟไลน์ ออฟไลน์

กระทู้: 574



ดูรายละเอียด
« ตอบ #3 เมื่อ: 28 เมษายน 2012, 20:01:06 »

โค๊ด:
<?php
$rudetxt 
= array("มะเฟือง""มะนาว");
$text 'แตงไทย แตงกวา ขนุน น้อยหน่า พุทรา มังคุด ละมุด ลำไย มะเฟือง มะไฟ มะกรูด มะนาว มะพร้าว ส้มโอ ฟักแฟง แตงโม ไชโย โห่หิ้ว';
$found false;
foreach(
$rudetxt as $word){
if(preg_match("/$word/"$text)){
$found true;
break;
}
}
if(
$found):
echo 'found';
else:
echo 'not found';
endif;
?>

 Embarrassed
บันทึกการเข้า

รับงาน PHP Programming ฟรีแลนซ์ จากโปรแกรมเมอร์ประสบการณ์กว่า 8 ปี ชำนาญเฟรมเวิร์ค CI ปรับแต่งได้ทุก CMS รับทั้งงานเล็กและงานใหญ่ในราคาเพื่อนฝูง รับทีละงาน ไม่พอกหางหมู เสร็จตรงเวลาแน่นอน แจ้งความคืบหน้าและอัพเดทความคืบหน้าของงานทุก 3 วัน สนใจ PM มาครับ!!!
Unlocker
คนรักเสียว
*

พลังน้ำใจ: 44
ออฟไลน์ ออฟไลน์

กระทู้: 193



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 28 เมษายน 2012, 20:23:59 »

โค๊ด:
<?php
$msg 
$_post['message'];
$query mysql_query("SELECT rudetxt FROM rudetb");
$count_badwords mysql_num_rows($query);
if(
$count_badwords>=1){
while($badwords mysql_fetch_array($query)) {
if(preg_match('#'.$badword['rudetxt'].'#'$msg)){
exit('Found Badwords!');
}
}
}
echo 
'OK';
?>

« แก้ไขครั้งสุดท้าย: 28 เมษายน 2012, 20:28:20 โดย Unlocker » บันทึกการเข้า

$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #5 เมื่อ: 28 เมษายน 2012, 20:30:24 »

โค๊ด:
<?php
$msg 
$_post['message'];
$query mysql_query("SELECT rudetxt FROM rudetb");
$count_badwords mysql_num_rows($query);
if(
$count_badwords>=1){
while($badwords mysql_fetch_array($query)) {
if(preg_match('#'.$badword['rudetxt'].'#'$msg)){
exit('Found Badwords!');
}
}
}
echo 
'OK';
?>


เจ๋งเลยครับ สุดยอด ขอบคุณครับ +1 ให้เลย  wanwan017 wanwan017
บันทึกการเข้า

เหนื่อย..
LifeGood
สมุนแก๊งเสียว
*

พลังน้ำใจ: 45
ออฟไลน์ ออฟไลน์

กระทู้: 574



ดูรายละเอียด
« ตอบ #6 เมื่อ: 28 เมษายน 2012, 23:04:23 »

โค๊ด:
<?php
$msg 
$_post['message'];
$query mysql_query("SELECT rudetxt FROM rudetb");
$count_badwords mysql_num_rows($query);
if(
$count_badwords>=1){
while($badwords mysql_fetch_array($query)) {
if(preg_match('#'.$badword['rudetxt'].'#'$msg)){
exit('Found Badwords!');
}
}
}
echo 
'OK';
?>


โอ้... จับปลาให้กิน  Lips Sealed
บันทึกการเข้า

รับงาน PHP Programming ฟรีแลนซ์ จากโปรแกรมเมอร์ประสบการณ์กว่า 8 ปี ชำนาญเฟรมเวิร์ค CI ปรับแต่งได้ทุก CMS รับทั้งงานเล็กและงานใหญ่ในราคาเพื่อนฝูง รับทีละงาน ไม่พอกหางหมู เสร็จตรงเวลาแน่นอน แจ้งความคืบหน้าและอัพเดทความคืบหน้าของงานทุก 3 วัน สนใจ PM มาครับ!!!
$100perday
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 324
ออฟไลน์ ออฟไลน์

กระทู้: 2,032



ดูรายละเอียด
« ตอบ #7 เมื่อ: 29 เมษายน 2012, 09:48:40 »

รบกวนอีกทีนะครับ

โค๊ด:
<?php
$msg 
$_post['message'];
$query mysql_query("SELECT rudetxt FROM rudetb");
$count_badwords mysql_num_rows($query);
if(
$count_badwords>=1){
while($badwords mysql_fetch_array($query)) {
if(preg_match('#'.$badword['rudetxt'].'#'$msg)){
exit('Found Badwords!');
}
}
}
echo 
'OK';
?>


พอดีรันแล้ว ทั้ง ๆ ที่ไม่มีคำหยาบเลย ยังขึ้น Found Badwords! อ่ะครับ  wanwan017 wanwan017 wanwan017
« แก้ไขครั้งสุดท้าย: 29 เมษายน 2012, 11:59:37 โดย $100perday » บันทึกการเข้า

เหนื่อย..
Unlocker
คนรักเสียว
*

พลังน้ำใจ: 44
ออฟไลน์ ออฟไลน์

กระทู้: 193



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 29 เมษายน 2012, 19:16:05 »

รบกวนอีกทีนะครับ

โค๊ด:
<?php
$msg 
$_post['message'];
$query mysql_query("SELECT rudetxt FROM rudetb");
$count_badwords mysql_num_rows($query);
if(
$count_badwords>=1){
while($badwords mysql_fetch_array($query)) {
if(preg_match('#'.$badword['rudetxt'].'#'$msg)){
exit('Found Badwords!');
}
}
}
echo 
'OK';
?>


พอดีรันแล้ว ทั้ง ๆ ที่ไม่มีคำหยาบเลย ยังขึ้น Found Badwords! อ่ะครับ  wanwan017 wanwan017 wanwan017

ดูดีๆครับ โค้ดพิมพ์ตกไปนิดนึง ลองสังเกตุดูครับ
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์