Sat 7 Jan 2006 14:31:02
หวัดดีครับ
รบกวนขอสอบถาม โค้ดจาวาสคลิป ที่เขียนป้องกันคนป้อนคำหยาบลงTextBoxครับ โดยให้เก็บข้อมูลคำหยาบที่เราจะป้องกันให้อยุ่ในรูปของ textfile(สามารถเพิ่มคำที่เราจะป้องกันนี้ได้) พอได้ไหมครับ
รบกวนขอตัวอย่างtextboxที่จะป้องกันสัก2textboxนะครับ
รบกวนด้วยนะครับ
ขอบคุณมากครับ
หลังจากนั้นทำการ load ข้อมูลลง array ครับแล้วลองทำตามประมาณนี้ครับ
var diniedword = Array('คำ', 'หยาบ');
var str = "ประโยคนี้มีคำหยาบอยู่ในประโยค";
for(i = 0; i < deniedword.length; i++){
if(str.indexOf(deniedword[i]) != -1){
alert("พบคำหยาบ");
}
}
ประมาณนี้ครับ ยังไม่ได้ทดสอบนะครับ
Mon 9 Jan 2006 09:10:45
โทษนะครับ รบกวนขอโค้ดตัวอย่าง แบบเต็มทีครับ ผมมองภาพการเขียนมะถูกนะครับ
แบบขอ2textbox วเลาคีคำหยาบลง2textbox ให้มะสามารถคีได้นะครับ ให้เก็บคำหยาบลงtextfileเป็นแบบ ฐานข้อมูลครับ
รบกวนด้วยนะครับ
ขอบคุณมากครับ
Tue 10 Jan 2006 08:54:54
ยังไงรบกวนด้วยนะครับ (จะเอาโค้ดมาประยุกใส่เว็บบอร์ดนะครับ )
ขอบคุณมากครับ
Tue 10 Jan 2006 13:01:14
โทษนะครับผมทำแบบserver-side script มะเป็นนะครับ รบกวนขอดูตัวอย่างทีครับ
ขอบคุณมากครับ
ก่อนอื่นต้องสร้างไฟล์ denied_word.txt โดยเก็บแบบคำละบรรทัด
<?
$list = file("denied_word.txt");
$data = preg_replace($list, "****", $data);
?>
ฟังก์ชั่น file จะเป็นการอ่านข้อมูลจากเอกสารโดยคืนค่ามาเป็น array ของข้อมูล ข้อมูลละ 1 บรรทัด
ฟังก์ชั่น preg_replace เป็นการค้นหาคำที่ตรงตามในตัวแปร list เมื่อพบจะถูกเขียนทับด้วย ดาว 4 ตัว (****)
ถ้าในความคิดของผมแล้วถ้าจะทำการป้องกันคำหยาบใช้ server-side script เป็น solution ที่เหมาะสมที่สุดครับ
Thu 12 Jan 2006 11:41:57
ขอบคุณมากครับ
Thu 12 Jan 2006 20:02:36
ขอโทษอีกครั้งครับ คือผมมะอยากให้มันต้องไปเช็คกะอีกหน้าของเพจนะครับ อยากจะให้มันเชคที่หน้าเดียวเลยนะครับ พอใส่คำหยาบปุบให้ขึ้นโชข้อความ แล้วเคลียtextboxให้ใส่คำใหม่ทันทีนะครับ (ถ้าแบบฐานข้อมูลแบบtextfileมะได้ แบบเสามารถเพิ่มคำเข้าไปในโค้ดได้ไหมครับ)
รบกวนขอตัวอย่างสัก2textboxนะครับ
ขอบคุณมากครับ
function checkRude(obj){
var rudeWord = new Array(<? $list = file("rude_word.txt"); for($i=0; $i<count($list); $i++){ echo (($i==(count($list)-1))?"'".trim($list[$i])."'":"'".trim($list[$i])."',"); } ?>
for(i=0; i<rudeWord.length; i++){
if(obj.value.indexOf(rudeWord[i]) != -1){
alert("มีคำไม่เหมาะสมครับ");
break;
}
}
}
</script>
<form>
<input type="text" name="text1" onkeyup="checkRude(this)" />
<input type="text" name="text2" onkeyup="checkRude(this)" />
</form>
ลองดูครับประมาณนี้ โดยไฟล์ rude_word.txt นั้นให้เก็บบรรทัดละคำครับ โค๊ดนี้ทำการทดสอบให้แล้วครับ
Fri 13 Jan 2006 11:20:58
รบกวนสอบถามครับ คือผมลองเอาโค้ดมาลองใช้ดู มันมีบักนะครับ แล้วผมได้ลองทำการแก้ก็ยังมะได้อีกรบกวนช่วยทีครับ
<script language="javascript">
function checkRude(obj){
var rudeWord = new Array(<? $list = file("rude_word.txt"); for($i=0; $i<count($list); $i++){ echo (($i==(count($list)-1))?"'".trim($list[$i])."'":"'".trim($list[$i])."',"); } ?>;
for(i=0; i<rudeWord.length; i++){
if(obj.value.indexOf(rudeWord[i]) != -1){
alert("มีคำไม่เหมาะสมครับ");
break;
}
}
}
</script>
ส่วนที่ทำการแก้เพิ่ม
<form>
<p>
<input type="text" name="text1" onkeyup="checkRude(obj)" /> //--------ผมแก้จากthisเป็นobjตามfunction checkRude(obj)
<input type="text" name="text2" onkeyup="checkRude(obj)" />//--------ผมแก้จากthisเป็นobjตามfunction checkRude(obj)
</p>
<p>
<input type="button" name="Submit" value="Submit" onclick="checkRude(obj);">//-------ผมทำการเพิ่มปุ่มเข้าไปด้วย
</p>
</form>
ส่วนtextfile rude_word.txt ผมใส่คำ
คำหยาบ
คำผิด2
ได้ใส่ไป2บรรทัด
รบกวนช่วยแก้ให้มะมีบักทีครับ หาจุดแก้มะเจอนะครับ
ขอบคุณมากครับ
Fri 13 Jan 2006 12:48:29
โทษนะครับผมลองเอาโค้ดไปลองทำแล้วมันยังมีbugอยู่อะครับ ผมได้ใส่ ) เพิ่มเข้าไปแล้วก็ยังมีbug
<script language="javascript">
function checkRude(obj){
var rudeWord = new Array(<? $list = file("rude_word.txt"); for($i=0; $i<count($list); $i++){ echo (($i==(count($list)-1))?"'".trim($list[$i])."'":"'".trim($list[$i])."',"); } ?>
;
for(i=0; i<rudeWord.length; i++){
if(obj.value.indexOf(rudeWord[i]) != -1){
alert("มีคำไม่เหมาะสมครับ");
break;
}
}
}
</script>
bugที่เกิดตอนโหลดเปิดเพจ
A Runtime error has occurred.
Do you wish to Debug?
Line: 8
Error: Syntax error
bugที่คีลงไปในช่อง
A Runtime error has occurred.
Do you wish to Debug?
Line: 22
Error: Object expected
ขอบคุณครับ
Fri 13 Jan 2006 12:50:26
โทษนะครับผมลองเอาโค้ดไปลองทำแล้วมันยังมีbugอยู่อะครับ ผมได้ใส่ ) เพิ่มเข้าไปแล้วก็ยังมีbug รบกวนช่วยแก้ให้ทีครับ
<script language="javascript">
function checkRude(obj){
var rudeWord = new Array(<? $list = file("rude_word.txt"); for($i=0; $i<count($list); $i++){ echo (($i==(count($list)-1))?"'".trim($list[$i])."'":"'".trim($list[$i])."',"); } ?>
;
for(i=0; i<rudeWord.length; i++){
if(obj.value.indexOf(rudeWord[i]) != -1){
alert("มีคำไม่เหมาะสมครับ");
break;
}
}
}
</script>
bugที่เกิดตอนโหลดเปิดเพจ
A Runtime error has occurred.
Do you wish to Debug?
Line: 8
Error: Syntax error
bugที่คีลงไปในช่อง
A Runtime error has occurred.
Do you wish to Debug?
Line: 22
Error: Object expected
ขอบคุณครับ
function checkRude(obj){
var rudeWord = new Array(<? $list = file("rude_word.txt"); for($i=0; $i<count($list); $i++){ echo (($i==(count($list)-1))?"'".trim($list[$i])."'":"'".trim($list[$i])."',"); } ?>
for(i=0; i<rudeWord.length; i++){
if(obj.value.indexOf(rudeWord[i]) != -1){
alert("มีคำไม่เหมาะสมครับ");
break;
}
}
}
</script>
<form>
<p>
<input type="text" name="text1" onkeyup="checkRude(this)" /><input type="button" name="Submit" value="Submit" onclick="checkRude(this.form.text1);">
<input type="text" name="text2" onkeyup="checkRude(this)" /><input type="button" name="Submit" value="Submit" onclick="checkRude(this.form.text2);">
</p>
</form>
ลองดูตามนี้ครับ ผมทดลองทั้ง IE, mozilla และ firefox แล้วไม่มี bug แล้วนะครับ
Fri 13 Jan 2006 16:39:17
ขอบคุณมากครับผมรันโค้ดด้านบนผ่านแล้วครับ
โทษอีกทีครับ ผมได้ทำการแก้ไขhtmlด้านล่างนี้แต่มันเกิดbugแก้มะได้ จะให้ปู่มเช็คค่ามันเช็คค่าคำในtextboxแต่ละอัน ถ้าtextboxไหนมีคำที่ตรงกับข้อมูลในrude_word.txtให้โชว่าคุณใส่คำหยาบตามคำในrude_word.txt แล้วให้เคลียและโฟกัสที่textboxนั้นทีละช่อง ให้ปุ่มกดมันเช็คที่ฟอร์มนะครับหรือฟังชั่นนะครับ
<form>
<p>
<input type="text" name="text1" ><br>
<input type="text" name="text2" ><br>
<input type="button" name="Submit" value="Submit" onclick="checkRude(this.form.text1.text2);">
</p>
</form>
รบกวนด้วยนะครับ
ขอบคุณมากครับ
<input type="button" name="Submit" value="Submit" onclick="checkRude(this.form.text1.text2);">
จากคำสั่งที่คุณเขียนนี้เป็นการส่งค่าของ object ที่ชื่อ text2 ที่มี parent object ชื่อ text1 และอยู่ใน form ที่ปุ่มนี้วางอยู่ จะเห็นได้ว่าไม่มี object นี้อยู่จริงครับ
ถ้าคุณต้องการให้มีปุ่มเดียวในการเช็คค่าทั้ง 2 object สามารถทำได้โดย
<input type="button" name="Submit" value="Submit" onclick="checkRude(this.form.text1); checkRude(this.form.text2);">
วิธีง่ายๆก็คือเรียกใช้งาน 2 ครั้งครับโดยส่ง object ทั้ง 2 ตัวเข้าไปครับ
Mon 16 Jan 2006 08:37:04
ขอบคุณมากครับ
Mon 30 Jan 2006 17:12:43
ต้องการนับจำนวนครั้งที่มีการ โหลดแบบฟอร์ม รบกวนช่วยเขียน funtion.ให้หน่อย ค่ะ
ลองดูโค๊ดของ counter ทั่วไปดูก็ได้ครับ
Thu 2 Feb 2006 13:50:34
ขอบคุณมาก ค่ะ
Mon 19 Feb 2007 16:20:35
ต้องการให้คำที่หาเจอว่าเป็นคำหยาบที่เราพิมพ์ลงไปนั้น เมื่อจาวาสคริปมันหาเจอให้ทำการเปลี่ยนเป็น *** ลงในช่องนั้น ๆ แทน ไม่ทราบว่ามีวิธีการอย่างไรค่ะ

















