PHP、MySQL、Ajax实现限制ip、浏览器投票

来源:互联网 发布:布里克中士升级数据 编辑:程序博客网 时间:2024/05/26 08:42

思路

(1)未点赞时,点赞图标和点赞数字都是灰色的。
(2)用户第一次点赞时,ajax用php获取到ip、操作系统类型、浏览器类型。将三个字符串拼接后,用md5函数加密后存入MySQL数据库的md5value字段中。
(3)此时点赞图标和点赞数字变为红色。
(4)当用户使用同一ip、操作系统、浏览器再次访问时,先从数据库读取数据(查询条件是where md5(ipsysbrowser)=md5value),查询到该用户所有的点赞条目
(5)将所有该用户的点赞条目遍历取出parent_id存入到数组中并输出到前台模板页面,在前台判断条目的ID是否在数组中,如果在,则将点赞图标和点赞数字设置为红色,如果不在设置为灰色),
(6)灰色的可以继续点赞,红色的不能点赞,此即实现了限制IP、浏览器点赞功能。

疑问

1、此方法能保证完全限制吗?

当然不能保证,用户只要一更换IP就能继续点赞了。

3、既然IP随时都在变,为什么还要用IP做判断?

因为如果只根据浏览器和操作系统来判断是不行的,A和B买了同样的手机,下载了同样版本的浏览器,那么A点赞后,B就不能点赞了。这也不太合适。所以还要有一个动态的IP作为判断依据。

3、总结

只要不登录用用户名的匿名点赞,都不能保证惟一性,用COOKIE也是一样,虽然不能完全保证惟一性,但还可以。

方法

数据库表comment

id,content,praise_count

数据库表praise

id,parent_id,md5value
(parent_id对应comment中的id)