我有这个:
<?php
if(isset($_POST['submit'])){
$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);
}
?>
它在txt文件中有效。它正确计算了点击次数。但是这个:
Times submited <?php echo $total; ?>.
在我的表单中的index.html文件中不起作用。你能帮忙吗?
这是我的文件行:
答案 0 :(得分:1)
首先,php不会在html文件中执行。您需要将文件设置为php,以便服务器对待它。
这就是为什么它在文本文件中工作。
如果必须是html,您可以使用:
http://php.about.com/od/advancedphp/p/html_php.htm
其次,$ total变量不是全局变量,因此在不同的php文件中不会知道,你需要使用get或post传递它,或者在第一个html文件中包含php。
我会选择后者。
答案 1 :(得分:0)
要计算点击次数而不写入文件,您需要存储会话中的点击次数,因为它不是全局的,也不会超出单个请求。这都需要在.php文件中完成。
<?php
$total = 0;
if(isset($_POST['submit'])){
在递增之前,将会话中的值重新读回$ total。
if(isset($_SESSION["total"]))
$total = $_SESSION["total"];
2增加$ total
$total++;
将$ total存回会话
$_SESSION["total"] = $total;
}
然后你可以打印出总数。
echo 'Times submited: ' . $total .'.';
?>