【发布时间】:2012-05-10 06:34:44
【问题描述】:
我对 PHP 还很陌生,但我设法设置了一个脚本,该脚本仅显示用户每次单击按钮时单击按钮的次数。
这里是 PHP:
<?php
$f = fopen('counter.txt', 'r+');
flock($f, LOCK_EX);
$total = (int) fread($f, max(1, filesize('counter.txt')));
if (isset($_POST['submit'])) {
rewind($f);
fwrite($f, ++$total);
}
fclose($f);
?>
这是 HTML:
<form action='' method="post">
<input type="submit" name="submit" value="click" />
</form>
This button has been clicked <?php echo $total; ?> times.
计数器正常工作,但有三个问题希望你们能帮助我:
每次重新加载页面时,计数器都会增加。我只希望在单击按钮时计数器增加。有什么办法可以解决这个问题吗?
每次我刷新页面时,Firefox 都会要求我确认是否要重新加载页面。我知道我的浏览器设置中有一个选项可以防止这种情况发生,但我想知道是否有办法优化我的 php,以便用户也不会出现此消息。
如果您单击该按钮几次,然后尝试使用“后退”按钮,它会引导您完成之前的每一次单击。同样,有没有办法修复我的代码,使其不会这样做,而是转到上一页?
非常感谢!!
【问题讨论】:
-
在提交表单时,每次刷新页面时计数器都会增加
标签: php performance button reload counter