PDA

View Full Version : Nên cho bình chọn trên website bằng cách nào?



dzungtc
09-08-2013, 05:05
Chào các bác,

Mình đang có dự định làm một cuộc thi video clip trên website. Sẽ có bình chọn online trên website trên mỗi video clip. Hiện tại mình chưa biết nên cho chức năng bình chọn theo cách nào cho hiệu quả vả đạt được tính công bằng cao. Các bác nào có kinh nghiệm hoặc có giải pháp hay thì tư vấn giùm mình nhé.

1. Người bình chọn cần phải đăng ký làm thành viên thì mới click BÌNH CHỌN được. Cách này sẽ gây phiền cho những người vào xem video clip nên có thể họ sẽ ko tốn công đăng ký thành viên mà sẽ bỏ qua. Hoặc người xem cố ý hỗ trợ cho tác giả video clip, tạo nhiều nick thành viên để vote cho video clip.

2. Người bình chọn sẽ sử dụng tài khoản facebook đang online để click LIKE cho video clip. Cách này có vẻ công bằng. Nhưng mình ngại việc hạn chế truy cập Facebook của các nhà mạng có thể ảnh hưởng tới việc kết nối từ Facebook tới website.

3. Người bình chọn sẽ chỉ click vào BÌNH CHỌN 1 lần khi vào xem video clip. Cái này hình như check bằng cookie. Cách này chỉ cần xoá cookie của trình duyệt là có thể tiếp tục click BÌNH CHỌN tiếp.

Hiện tại mình chỉ nghĩ được 3 cách trên. Xin các bác cao nhân lập trình PHP có thể tư vấn các giải pháp gì để mình có cách làm hay và hiệu quả nhất.

Cám ơn các bác rất nhiều!

chesterben
09-08-2013, 13:35
Mình xin nói trước là ko có cách nào chặn được tuyệt đối cả. Nhưng hạn chế spam thì có thể được. Cách mà mình thường dùng khi cho phép Anonymous User bình chọn là kiểm tra header metadata của họ.

Khi ai đó bình chọn mình sẽ lưu lại những thông tin sau:
- IP
- Browser agent
- OS

Nếu có ai bình chọn mà có thông tin giống như trên thì ko cho vote. Chỉ lưu ý một chút là cách này đòi hỏi lưu trữ nhanh và nhiều nên cần cân nhắc chọn loại CSDL thích hợp. Mình thường sử dụng Redis (http://redis.io/) cho dạng ứng dụng này!

dzungtc
11-08-2013, 21:32
Mình xin nói trước là ko có cách nào chặn được tuyệt đối cả. Nhưng hạn chế spam thì có thể được. Cách mà mình thường dùng khi cho phép Anonymous User bình chọn là kiểm tra header metadata của họ.

Khi ai đó bình chọn mình sẽ lưu lại những thông tin sau:
- IP
- Browser agent
- OS

Nếu có ai bình chọn mà có thông tin giống như trên thì ko cho vote. Chỉ lưu ý một chút là cách này đòi hỏi lưu trữ nhanh và nhiều nên cần cân nhắc chọn loại CSDL thích hợp. Mình thường sử dụng Redis cho dạng ứng dụng này!

Cám ơn bác Chesterben là đã tư vấn cho mình. Việc sử dụng Redis như bác nói thì mình e là khó thực hiện cho web của mình. Chắc là mình sẽ sử dụng cách là phải đăng ký thành viên để bình chọn. Cám ơn bác nhiều nhé!