请问下面这个程序错在那里? 现在总提示我 距离上次发帖不足10秒,不能发帖    
如果将"])+10<time())  中的<号改为>号,就没有错误提示,但是就没有限制的发帖,这个语句等于就没用,
请高手指点一下
//判断系统date_default_timezone_set('PRC');
$nowip= iconv("utf-8","gbk",$_SERVER['REMOTE_ADDR']);//得到当前ip
$info_nowip = $db->exe_sql("select `f_ip`,`f_date` from `user_info_input` where `f_ip` ='$nowip'");
$info_nowip_rows = mysql_fetch_assoc($info_nowip);
if($info_nowip_rows["f_ip"]){ 
               if(strtotime($info_nowip_rows["f_date"])+10<time()) {
                                      exit("距离上次发帖不足10秒,不能发帖");
                                                     }
                            }   //判断系统
我用语句可以输出  echo $info_nowip_rows["f_date"],'-',$info_nowip_rows["f_ip"],'-',time();
输出结果为     2011-07-29 07:02:02-127.0.0.1-1313733601

解决方案 »

  1.   

    应该是:
    strtotime($info_nowip_rows["f_date"])+10 > time()
    "如果将"])+10<time()) 中的<号改为>号,就没有错误提示,但是就没有限制的发帖,这个语句等于就没用"time()是越来越大的,怎么可能不起作用呢?
      

  2.   

    你的判断逻辑有问题啊,应改为:
    if(strtotime($info_nowip_rows["f_date"]) + 10 > time())等价于:
    if (time() - strtotime($info_nowip_rows['f_date']) < 10)
      

  3.   

    原来的是正解,就应该是 > 而不是 <
      

  4.   

    $nowip= $_SERVER['REMOTE_ADDR'];
    $info_nowip = $db->exe_sql("select count(1) as cnt from `user_info_input` where `f_ip` ='$nowip' and date_add(发帖时间,interval 10 second) < NOW()");
    if($info_nowip_rows = mysql_fetch_assoc($info_nowip) && $info_nowip_rows["cnt"]){
      exit("距离上次发帖不足10秒,不能发帖");
    }