09/10/2018, 23:16
Các bạn viết giúp đoạn code chống "bóc tem" blog nào
Chào các bạn,
Mình rất bực bội khi bây giờ trên Blog có cái kiểu "bóc tem" rất thô thiển. Nó làm cho những người muốn comment sau bài viết của mình dị ứng và không còn hứng thú comment nữa. Ai lại viết bài nào lên, ngay sau đó lạ có chữ "Bóc Tem" to tổ chảng nằm ngay dưới bài.
Không chịu được, mình đã từ bỏ mấy dịch vụ Blog có sẵn để tự viết một blog bằng PHP & MySQL nho nhỏ tự sử dụng. Cách chống Spam bài viết bằng một hình ảnh hiện chữ nghiêng ngã khó đọc thì mình làm được. Tuy nhiên, điều đó không tránh được hành động "bóc tem". Mà cứ phải vào xóa từng bài viết có cái comment dạng bóc tem đó thì nhàm chán, mệt. Mình đang tìm một đoạn code PHP giải quyết vấn đề này, mong các bạn trợ lực viết giúp cho một vài dòng vì mình chưa đủ sức để viết.
Ý tưởng như sau:
Khi một người vào gửi bài, ta chưa đưa vào table của MySQL lưu các comment ngay mà cho vào một table tạm. Ta có chức năng của Admin để duyệt một loạt các bài mới gửi này, để nếu có bài dạng "bóc tem" thì ta chọn và loại bỏ nó ngay và không cho nó vào table của comment để hiển thị cho người khác thấy. Như vậy, phá hỏng được ý định của kẻ bóc tem.
Tuy nhiên, ta không thể lập trình để PHP nhận biết được bài nào là bóc tem, bài nào là không. Mà nếu đặt tất cả các bài ở chế độ kiểm duyệt hết không cho hiển thị lên thì những người viết comment hết cả hứng thú vì họ không thấy bài họ hiển thị lên. Cho nên, mình đang muốn rằng khi bài gửi lên, ta căn cứ vào địa chỉ IP của người viết comment, cho phép hiển thị bài họ gửi để họ vui và cũng để họ biết rằng bài viết của họ đã gửi thành công, tránh việc ta không hiển thị bài họ lại tưởng là chưa gửi được, lại gửi thêm vài lần thì rất là phiền phức. Nhưng với những người khác vào thăm trang của ta, thì bài viết còn ở trong table tạm đó hoàn toàn không hiển thị mà ở trong chế độ kiểm duyệt của ta. Bao giờ ta accept thì nó mới hiển thị với mọi người.
Mong được các bạn giúp đỡ cho đoạn PHP script như vậy. Các bạn có thể tự tạo table các comment tùy thích để minh họa.
Chân thành cám ơn!
Mình rất bực bội khi bây giờ trên Blog có cái kiểu "bóc tem" rất thô thiển. Nó làm cho những người muốn comment sau bài viết của mình dị ứng và không còn hứng thú comment nữa. Ai lại viết bài nào lên, ngay sau đó lạ có chữ "Bóc Tem" to tổ chảng nằm ngay dưới bài.
Không chịu được, mình đã từ bỏ mấy dịch vụ Blog có sẵn để tự viết một blog bằng PHP & MySQL nho nhỏ tự sử dụng. Cách chống Spam bài viết bằng một hình ảnh hiện chữ nghiêng ngã khó đọc thì mình làm được. Tuy nhiên, điều đó không tránh được hành động "bóc tem". Mà cứ phải vào xóa từng bài viết có cái comment dạng bóc tem đó thì nhàm chán, mệt. Mình đang tìm một đoạn code PHP giải quyết vấn đề này, mong các bạn trợ lực viết giúp cho một vài dòng vì mình chưa đủ sức để viết.
Ý tưởng như sau:
Khi một người vào gửi bài, ta chưa đưa vào table của MySQL lưu các comment ngay mà cho vào một table tạm. Ta có chức năng của Admin để duyệt một loạt các bài mới gửi này, để nếu có bài dạng "bóc tem" thì ta chọn và loại bỏ nó ngay và không cho nó vào table của comment để hiển thị cho người khác thấy. Như vậy, phá hỏng được ý định của kẻ bóc tem.
Tuy nhiên, ta không thể lập trình để PHP nhận biết được bài nào là bóc tem, bài nào là không. Mà nếu đặt tất cả các bài ở chế độ kiểm duyệt hết không cho hiển thị lên thì những người viết comment hết cả hứng thú vì họ không thấy bài họ hiển thị lên. Cho nên, mình đang muốn rằng khi bài gửi lên, ta căn cứ vào địa chỉ IP của người viết comment, cho phép hiển thị bài họ gửi để họ vui và cũng để họ biết rằng bài viết của họ đã gửi thành công, tránh việc ta không hiển thị bài họ lại tưởng là chưa gửi được, lại gửi thêm vài lần thì rất là phiền phức. Nhưng với những người khác vào thăm trang của ta, thì bài viết còn ở trong table tạm đó hoàn toàn không hiển thị mà ở trong chế độ kiểm duyệt của ta. Bao giờ ta accept thì nó mới hiển thị với mọi người.
Mong được các bạn giúp đỡ cho đoạn PHP script như vậy. Các bạn có thể tự tạo table các comment tùy thích để minh họa.
Chân thành cám ơn!
Bài liên quan
Active là để kiểm duyệt, như bạn nói
poster_ip để lưu lại ip của người gởi
Như vậy trong câu lệnh select comment sẽ có đoạn " WHERE active=1 or poster_ip='{$_SERVER['REMOTE_ADDRESS']}' " là xong
Cách làm là tạo 1 danh sách những từ dị ứng, ví dụ
bóc tem
póc tem
boc tem
poc tem
/.....
Nếu bài viết nào có chứa những từ đó thì vào danh sách kiểm duyệt để Admin duyệt lại, nếu kô chứa thì cho lên luôn.
b..óc..t..em.
b.....ó..c.......t...e...m....
bóc____tem
bóc~~~tem
v...v...
Làm sao bạn có thể chặn hết được ?
Thứ 2: Lập trình xử lý ký tự
Với những cái như
b..óc..t..em.
b.....ó..c.......t...e...m....
bóc____tem
bóc~~~tem
thì lập trình xử lý ký tự rồi thì nó chẳn khác gì
bóc tem
bóc tem
bóc tem và vẫn là bóc tem
Chắc tiếp theo bạn sẽ hỏi lập trình xử lý thế nào phải kô?
Nó phụ thuộc vào khả năng lập trình của mọi người!
Nhiều cách nhưng không thể nào ngăn được người dùng nếu họ muốn. Cái này còn đỡ...một vài tên còn ghi "phá...t_r_i_n_h " cơ