问题

时间:2012-10-23 00:18:55

标签: php count echo

  

可能重复:
  PHP script not working in HTML file

我有这个:

<?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文件中不起作用。你能帮忙吗?

这是我的文件行:

  1. form(index.html)
  2. .php文件
  3. 标题(“位置:thankyou.php”)
  4. 然后回到index.html

2 个答案:

答案 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'])){
  1. 在递增之前,将会话中的值重新读回$ total。

    if(isset($_SESSION["total"]))
       $total = $_SESSION["total"];
    
  2. 2增加$ total

      $total++;
    
    1. 将$ total存回会话

      $_SESSION["total"] = $total;
      }
      
    2. 然后你可以打印出总数。

      echo 'Times submited: ' . $total .'.';
      ?>