有两个问题:
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å¨è¿ä¸ªæ°ç»ä¸ç次æ°ï¼å¦æè¶ è¿ä½ 容å¿çèå´å°±ä¸è®¤å®ä¸ºæ£ä¹±ã
ç¨åºä¸çåæ´ä¹å¾ç®åï¼å°±æ¯å¨ä¿ççè¨åï¼æ¥çæ¬æ¬¡çè¨ç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值
2)应该有转换函数,具体自己去查。另外可行的方案是在数据库中直接以整形数形式存放time值