麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
小妹紧急求助!提交时间限制问题
悬赏分:20 - 2007年08月22日

经过各位高手的帮忙,小妹的评价表已初步完成,但现在还有两个很大的问题。我希望同一个 IP地址的用户重复提交限制时间为90分钟。我的时间限制代码是写在表单提交后,统计数据的页面中。

我希望当用户提交表单后,系统会将用户提交表单的时间做为变量获取,与数据库中存储的同一ip地址的提交时间做比较,如果限制的时间未到则不会将时间写入,且不进行统计。如果过了规定的时间,则会将数据库中原有的提交时间更新。如果是新的ip地址,则插入新的ip和提交时间。

问题一:时间限制有了,但为什么无论是否在时间限制的范围内,用户提交的时间都会写入数据库。而且会将前面几次的提交时间都更新为最后一次时间。

问题二:使用了时间限制后,该页面就无法实现统计运算了。未加之前是好的。

我记录提交时间的表名为t_limit,字段名为s_ip(记录提交的用户IP),s_time(记录提交时间)

粗体字为原计算的代码
<?php require_once('Connections/test.php');
mysql_select_db($database_test, $test) or die("不能连接数据库");
$ip=getenv("REMOTE_ADDR");//用户ip
$time=date("Y-m-d H:i:s");//当前时间
$sql="select * from `t_limit` where s_ip='".$ip."'";
$rs=mysql_query($sql);
if(mysql_num_rows($rs)>0)//如果库中存在用户
{
$s_time=mysql_result($rs,0,"s_time");//取出入库时间
$diftime=(strtotime($time)-strtotime($s_time))/60;//求取相差时间
if($diftime>=90)
{
$up_sql="UPDATE t_limit SET s_time='".$time."' where s_ip='".$ip."'";
mysql_query($up_sql,$t_limit);
print "数据更新成功";
foreach($_POST as $i=>$v) {
$updateCommand="UPDATE votemain SET vote_count$v = vote_count$v + 1 where vote_id=$i";
mysql_query($updateCommand);
}

}
else
{
print "时间未到,不能提交距离现在相差".sprintf("%0.2f",$diftime)."分";
}
}
else
{
$in_sql="insert into t_limit(`s_time`,`s_ip`) values ('$time','$ip')";
mysql_query($in_sql,$t_limit);
print "数据插入成功";
foreach($_POST as $i=>$v) {
$updateCommand="UPDATE votemain SET vote_count$v = vote_count$v + 1 where vote_id=$i";
mysql_query($updateCommand);
}

}


mysql_select_db($database_test, $test);
$query_Recordset1 = "SELECT * FROM votemain";
$Recordset1 = mysql_query($query_Recordset1, $test) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
mysql_free_result($Recordset1);


?>

提问者:luna78   08-22 08:08
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
15 + 61 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM