【问题标题】:<?php echo $total; ?> issue [duplicate]<?php 回显 $total; ?> 问题 [重复]
【发布时间】:2012-10-12 21:08:13
【问题描述】:

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

【问题讨论】:

  • 在我看来,我们需要更多的 HTML 来提供帮助。
  • PHP 代码(通常)不会在.html 文件中运行。并且$total 等变量不会在不同的页面请求之间持续存在;需要再次读取计数器文件。
  • 您可以将 $total 存储在 cookie 或会话变量中以启用任何页面的访问。也使用 .php 让它工作
  • 是的。我认为这可能是代码内或跨请求(使用会话)的范围界定问题。如果您不这样做,请声明一个全局 $total。
  • 将 index.html 移动到 index.php。然后你就可以做你需要的了。

标签: php count echo


【解决方案1】:

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

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

如果必须是html,可以这样:

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

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

我会选择后者。

【讨论】:

  • 嗯,这是有道理的,他们不会让你在 d 上玩太多 htaccess 文件也就不足为奇了。尝试将 php 移动到 html 文件中,并将其从 html 更改为 php。
  • Do if(! Empty($_post['submit']) {} 另外,使用get not post。
  • 我很困惑,所以 .php 的新手......
【解决方案2】:

要在不写入文件的情况下计算点击次数,您需要将点击次数存储在会话中,因为它不是全局的,也不会在单个请求之后持续存在。这一切都需要在 .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 .'.';
    ?>
    

【讨论】:

  • $total = 0; if(isset($_POST['submit'])){ if(isset($_SESSION["total"])) $total = $_SESSION["total"]; $总计++; $_SESSION["total"] = $total; } echo '提交的时间:' 。 $total .'.'; **** 它没有用。还是 没有出现在 index/html 中。非常感谢您抽出宝贵的时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 2021-03-07
  • 2011-08-13
相关资源
最近更新 更多