PHP高手来看看

有两个问题:
1)
一个留言簿,不用注册可以发言,要防止人家恶意发言.
我的想法是把IP,POST_TIME为一个条目放在数据库中,然后每次发贴扫描数据库,判断该IP此次发贴的时间是否超过一个固定值,超过可以发贴,否则不能.但是这样的话会导致数据库越来越庞大.我又不知道如何利用PHP使服务器的数据库每隔一段时间去清理数据库.请问现在流行的方法是什么?
2)要如何利用PHP和数据库中的类型为datetime的字段进行通讯?mktime()是int,date()是string.

我建议你采用另外一个简单的方法:数据库里面保存留言内容的表增加一个字段,保存留言的IP地址。有可能你的数据库本来就有这个字段,保存了IP地址的,那样就更好了。

程序上的变更也很简单,就是在保留留言前,查看本次留言的IP是否在最后10条留言里面,如果有就是重复,不给保存。可以把数据库最后10条留言的IP地址获取到程序的数组里面,然后进行判断。

如果进一步的细化,上面的10条是可以调整的,你可以考虑判断20条或者5条。里面重复一次就不让发表,还是允许重复两三次,这些都是你可以自由发挥的。同时,那个数字10也是可以结合留言时间的,比如你可以规定一天内允许一个IP重复三次。

获取最近一天、最多10条的SQL例如:
SELECT IP FROM 留言簿 WHERE 留言时间>一天前 ORDER BY 留言时间或者主键ID DESC LIMIT 10

上面的语句把IP获取到数组里面,然后判断当前客户端IP在这个数组中的次数,如果超过你容忍的范围就不认定为捣乱。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-03
1)使用cookie或者session记录用户最后一次发言时间能够解决此问题。
2)应该有转换函数,具体自己去查。另外可行的方案是在数据库中直接以整形数形式存放time值

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网