错误/重复时间添加到数据库

时间:2013-04-21 16:05:40

标签: php time

我遇到了time()命令的问题。

对于那些不想阅读我丑陋代码的人:): 在index.php中我有几个带有启动和停止按钮的计数器。(只有一个按钮/编号:如果按钮编号在表中“激活”,则用户只能看到该编号的停止按钮) 当我启动一个时,按钮的编号和开始时间被插入“激活”表中。 当我停止一个时,我从“活动”开始时间,将其放入“整体”表格,将停止时间添加到“整体”,并从“活动”中删除原始录音

有以下文件:

-in index.php有许多提交按钮(1-25),目标是start.php或stop.php

-in start.php我有

[..]
$start_time=time();
$query="INSERT INTO active (button_no, start_time) VALUES ('$button_no','$start_time')";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
mysqli_close($mysqli);
[..]

-in stop.php我有

        [..]
        $query="SELECT * FROM active";
        $result = $mysqli->query($query) or die($mysqli->error.__LINE__);
        if($result->num_rows > 0)
            {
                $i=0;
                while($row = $result->fetch_assoc())
                    {
                    $button_no[$i]=$row['button_no'];
                    $start_time[$i]=$row['start_time'];
                    $i++;
                    }
            }
        [..]
    mysqli_close($mysqli);
    $_SESSION['button_no']=$button_no;
    $_SESSION['start_time']=$start_time;
[..]
?>
<form action="update_total.php"><table>
        <tr>
            <td><input type=submit name=back value="Confirm"></td>
        </tr>
</table></form>

然后将我带到update_total.php:

[..]
$button_no=$_SESSION['button_no'];
$start_time=$_SESSION['start_time'];
$stop_time=time();
$query="INSERT INTO overall (button_no, start_time, stop_time) VALUES ('$button_no','$start_time','$stop_time')";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
mysqli_close($mysqli);
header('Location: delete.php') ;
[..]

并在delete.php中删除“active”中的相应行。

一切都运行良好一段时间,直到今天早上。我不是那个按下提交按钮的人,但按下它们的人说他们在同一个标​​签中的不同时间被按下了(而且几乎不可能同时按下它们)。 问题是指在一段时间内(aprox.1小时),他们都记录了相同的开始时间戳,并且正确的停止时间戳。 我的问题:可能导致它的原因(编码,服务器,连接问题,ecc。)以及如何“防御”这种情况发生。

0 个答案:

没有答案