- เครดิต
- 220
- เพื่อน
- ทักทาย
- บล็อก
- อัลบั้ม
- โพสต์
- กระทู้
- แชร์
- สำคัญ
- สิทธิ์อ่าน
- 180
- จำนวนผู้ติดตาม
- จำนวนผู้กำลังติดตาม
- เพศ
- ไม่บอก
|
แก้ไขครั้งสุดท้ายโดย aaa.111 เมื่อ 2013-5-9 17:09
- f- k0 a& B% b$ m( F. ?2 f. a# l' i8 k
ตอนแรกจะเขียนเป็นบทความ แต่ตัวเองอ่านไปแล้วไม่เข้าใจเลยเลิกละ
; D3 P5 N2 A$ d: o8 p$ a! \$ {$ h: j) r- y# c' J2 j: i
ก็ตรงๆเลยนะ/ l/ r" h6 N' F$ `2 M- y
h5 h+ p) [3 p0 g' v3 \5 d# ]
ลองใช้เป็น ลิงก์ "แจ้งลบ" ข้างๆ เหมือนพวก @ อ้างอิง1 K2 S, H$ s! C' R
แล้วเอาไปวิเคราะห์ดู4 E" |" r( G% x2 v. N) o& g
" a- Q7 S# g2 K: ]# @* i# ]( `หลักๆ ก็เป็น
/ D; Z$ J, r4 q6 y. O1 V1) ตรวจสอบว่าเป็นการโพสโดยคนๆ เดียวใช่หรือไม่ (เก็บค่า a)2 n+ p" \- C% s3 O# V
2) ตรวจว่าข้อความนั้น ตรงกับ ข้อความใดบ้างในแชท (หาผู้ร่วมกระทำผิด ) (เก็บค่า b)
: J5 {5 W0 P' D% V3 j3 g3) ครวจว่าเป็นระยะเวลาห่างกันเท่าไร (เก็บค่า c)+ H- ]) \$ G' G0 U. ?$ v' ]
8 L5 R6 T; i5 B; F
เหมือ a b c เป็นการเก็บแบบ array A- N- N( n Y3 g O5 q
ข้อใช้เป็น โครงสร้าง ภาษา C ฟิชเชอร์ริง กับ php นะ (อย่าไปดูโค๊ตมันไม่ถูกหรอก)
8 C5 Z- c, J0 x; r0 @
! E b1 i& u6 u" a9 ], V2 ?% ]' U& [ V9 ~7 {6 h/ H0 A; v4 d" i1 _
function a($uid){ ตรวจว่า ในช่วงนั้น $uid นี้ โพสติดกันเท่าไร ; return จำนวนโพสติด;}0 E9 v4 h1 u9 S
function b($str){ ค้นหาจำนวนส่วนของข้อความเหมือนกัน($str) ; } //จะได้ array ของ chat_id => 'chat_text'
: o" a6 x3 M0 I8 C2 k( ]' S( G k; d% gfunction c($datetime1, $datetime2){ หาผลต่างของเวลา if( $def_time < ค่าที่ตั้งไว้){return 1;}}
* D! C4 H& o( B5 x! h' }' L
( {* l3 z2 ]$ @& V7 I& `/ F2 C' [5 s9 u# d% P' q, Z) F. u; g: `
9 ]( b m6 e; e2 N* @' q
ทั้งหมดแล้ว5 d6 h4 @2 V$ x
แค่ต้องการบอกว่า
9 Y4 d4 C3 V* s5 H# p; L0 p! X8 A# X5 a$ C0 a$ V1 q
ทำลิงค์ แจ้งลบ ไปเถอะ
) O2 G2 ]" f, P5 X( ]2 t( V, C) K0 T+ k3 r! F
แต่ ใช้จำนวนคนที่แจ้งลบ มาเป็นตัวตัดสินไม่ได้นะ เพราะ บางคนก็ไม่กด บ้าง ก็ ระดมรีพอท
, }. p" N0 i/ }0 f `! k" bใช้ระบบวิเคราะห์เอา จากสีส้ม" T0 s+ T6 k4 L; ?0 q' [. h/ F
+ b w2 e' M0 U1 t0 x" l
5 Y, r8 F& C7 ]5 ^2 H; f4 Rปล อ่านแค่ข้อความสีจะรู้เรื่องกว่า แล้วถ้าว่าง หายมึน แล้วจะมาแก้ไขกระทู้ใหม่. h/ L! T& i& t" \
# a6 H0 l0 B7 ^2 d
//ฝากพี่ๆ ออกมาเปิดประเด่นหน่อยนะ เพราะผมถนัดเขียนแบบ อธิบายแชทมากกว่า
" s" p" K3 e- N( J5 [
" b- @$ e% `8 B' I3 e
. ~$ F# [3 L: O; Bลองเสนอทฤษฎีการฟลัด
b- S7 G4 w% Z4 u1 ~7 uก่อนที่จะเขียนบทความนี้ ก็ไม่ได้แตะแชท ดิสคัส หรือ ภาษาคอม ทุกภาษามานานละ ตั้งใจเรียนอย่างเดียว >///<
3 U# @* ~8 w1 m7 s8 N1 l55 เหมือนจะไม่น่าเชื่อถือ4 V, y* E) [2 b4 W$ Q
2 K! q7 t1 j6 f. Jอย่างแรกเลย นิยามก่อน (ตามที่ผมเข้าใจนะ)' ~# Q2 O$ @8 }
การฟลัดข้อความ (Flooding) ส่วนใหญ่มักจะเจอในหน้าๆที่ ที่ให้สมาชิก สมารถโพสข้อความ หรือ ฯลฯ
/ u" _3 W1 w9 s* }' ]% `" y( `จะพบมากใน กล่องสนทนา (Chat box) ซะส่วนใหญ่ ]- K: ]0 p1 [0 ?/ G/ l
3 S( {) e! V* ^% X" eวิธีป้องกัน พื้นฐานที่สุดเลยคือ การ หน่วงเวลา (Delay) ไม่ให้โพสข้อความลงติดๆกันได้- W6 \7 D. Y8 P' W% O
ที่นี่ มันก็จะมีปัญหากับไอ่พวกชอบถาม อย่างผม / q4 ?7 v4 i, O( I& v, N {
มักจะพิมพ์ว่า
6 _$ v. q/ e8 B" m' {<!!0 F3 N: B2 ?0 ?
เออ...
! b, l* ^. p4 t9 C% z. Sขอโทษครับ ไม่ทราบว่า การ เออ...
+ q9 D, k- Q2 r5 ^7 _7 S6 J# vการแก้โจทย์ของ Dx/dm โดยใช้ ขั้นตอน0 F5 N, Z0 `* `( G: W
...; `$ N0 B' W( G$ T- E
เงียบเลยแหะ {; ~6 K$ I6 H
!!>
( ?& R" y2 F; \: H9 R4 n3 S5 a! B1 \3 B; V4 b) x7 Y8 h9 Q
แต่ละข้อความใช้เวลาพิมพ์ ห่างกัน 1 วินาที
" K! W/ {( @& ^. Vถ้าใครเล่น เฟสบุ๊ค (Facebook) เมื่อก่อน ตอนพิมพ์แชทติดๆกัน มันจะรวมเป็นบรรทัดเดียวกันเลยใช่ไหม
) I2 z( w. E( S, a. ~$ a t
4 T/ N# E6 U( k7 p) ]/ x% a3 ~4 iอะ คราวนี้ มาฟังทฤษฎีผมมั้ง5 a8 M* o' R p3 N
/ w' Z* ?% H* ?1 F8 F3 J4 ]) }2 c6 h
มันอาจจะเรียกว่า การป้องกันการฟลัดข้อความไม่ได้หรอกมั้ง
- s7 n& |& u7 b. Kมันเหมือน ระบบแจ้งลบ ข้อความ ซะมากกว่า, U {4 u, A8 M ~$ L5 s
( v1 e# ?" ~, Q9 f' `
. D5 d! q! O7 n2 H# k% D) u& R' tกรณีที่ 1 : ห้องแชทโล่งๆ (มีคนออน 2-3 คน)9 _& w: y2 A( D; R$ Y5 Z
การฟลัแชท ในกรณีนี้ ก็อาจจะเป็นพวกเว็บบอร์ดความรู้ สาระ ส่วนตัว ฯลฯ ที่คนไม่เยอะเท่าไร1 U/ z l+ f' ^* i: ^2 ?# l
อยู่มาวันหนึ่ง ก็จะมี เกรียนขายของ เข้ามา ฟลัดโฟสขายของแบบรัวๆ 2 ^9 b" x* E) O. i5 q
7 M6 k; e& r1 Bแน่นอนว่า ระบบ delay เราช่วยไว้ได้มาก แต่ถ้าเราคุยกับสมาชิกปกติละ โครตน่ารำคาญ delay มากเลย
- ^& B6 p, |" w4 r% F: l" o: G: K$ Y3 y% a' u
เอาละ) Z( J: `* K, x- N6 D; |
จุดที่หลายคนพอสังเกตได้คือ
7 D" e% }: V4 w6 F) }. l5 h2 m. I, a- B% r( a6 f% y+ H
1) จะเป็นการโพสโดยคนเดียวอย่างต่อเนื่อง0 O) f. m k6 t$ u! r
2) ข้อความเรียงติดกัน
; w r$ [: z/ q3 B3) เวลาใกล้เคียงกัน. u& H/ ^3 F4 f @6 _2 m0 z% i
0 Y9 l2 C8 v8 D$ X
& a, }. m+ N! J
, L, K6 d2 L% ^, y8 ?5 K N3 B( x
วิธีแก้ปัญหา คือ (รูปแบบผมจะเขียนเป็น if else แบบย่อนะครับ แนวการอ่าน \ n "1) ข้อความ" ? ข้อความใช่ : ข้อความไม่ใช่. k I5 S. ], O q% {7 `
1) ตรวจสอบว่าเป็นการโพสโดยคนเดียวหรือไม่หรือไม่ แบ่งเป็น 2 กรณี
: ]% ?0 n- L e' U- U" W3 p 1.1) กรณีโพสคนเดียว แต่ระยะเวลาห่างกันนานมาก => แก้โดยการเปรียบเทียบข้อความ
: D; A9 {, h; T 1.2) กรณีโพสคนเดียว เวลาติดๆ กัน => ฟลัดโพสแน่นอน (เพราะถ้ามีคนกดแจ้งเตือนมา แสดงว่าฟลัดโพสอยู่แล้ว); g+ W+ Y' e8 w/ ^: R9 d
<!!-- แต่วิธีที่ 1 ก็ยังคงเป็นจุดด้อยอยู่ คือ ถ้า มีคนแกล้ง มันก็จะลบใช่ไหม ดูต่อวิธี 2 -->
0 A# w& v k5 T5 o" A9 @6 O% U: g# ~ ]+ }7 B3 S9 L8 Q( K8 b
2) ตรวจสอบจากข้อ 1.2 |
คะแนน
-
ดูบันทึกคะแนน
|
|
|
|
|
|