1

可能重复:
PHP 脚本在 HTML 文件中不起作用

我有这个:

<?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. 表单(index.html)
  2. .php 文件
  3. header("位置:thankyou.php")
  4. 然后回到 index.html
4

2 回答 2

1

首先,php 不会在 html 文件中执行。您需要将文件设为 php 文件,以便服务器对其进行处理。

这就是它在文本文件中工作的原因。

如果它必须是html,你可以使用这个:

http://php.about.com/od/advancedphp/p/html_php.htm

其次,$total 变量不是全局变量,因此在不同的 php 文件中不会知道它,您需要使用 get 或 post 传递它,或者将 php 包含在第一个 html 文件中。

我会选择后者。

于 2012-10-23T00:28:40.753 回答
0

要在不写入文件的情况下计算点击次数,您需要在会话中存储点击次数,因为它不是全局的,也不会在单个请求之后持续存在。这一切都需要在 .php 文件中完成。

<?php
$total = 0;

if(isset($_POST['submit'])){
  1. 在递增之前将会话中的值读回 $total。

    if(isset($_SESSION["total"]))
       $total = $_SESSION["total"];
    

2 增量 $total

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

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

    echo 'Times submited: ' . $total .'.';
    ?>
    
于 2012-10-23T00:30:26.887 回答