【问题标题】:echo clicks count on php button click counterecho clicks count on php button click counter
【发布时间】:2013-12-10 08:25:45
【问题描述】:

我在 php 中找到了这个脚本,它计算按钮点击并将它们保存到 txt 文件中。

 <?php
    if( isset($_POST['clicks']) )
    { 
        clickInc();
    }
    function clickInc()
    {
        $count = ("clickcount.txt");

        $clicks = file($count);
        $clicks[0]++;

        $fp = fopen($count, "w") or die("Can't open file");
        fputs($fp, "$clicks[0]");
        fclose($fp);

        echo $clicks[0];
    }
    ?>

    <html>

        <head>

           <title>button count</title>

        </head>
        <body>
            <form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
                <input type="submit" value="click me!" name="clicks">
            </form>

        </body>
    </html>

我想不通的是如何将按钮点击次数回显到 html 的不同部分。 我试过放置:

 <?php
     echo $clicks[0];
 ?>

但这不起作用。 我究竟做错了什么? 谢谢..

【问题讨论】:

  • 这看起来很脏——我知道当你不懂语言时这很“难”,但你应该看看这些 php 函数 file_get_contentsfile_put_contents 并使用它们来获得更多的 php 练习和文件处理

标签: php


【解决方案1】:

我建议将读取点击计数的代码部分与增加点击计数的部分分开,以便您可以单独调用每个部分。然后您不必从实际增量部分保存点击计数;您可以在需要时自行获取点击次数,与当时文件中的点击次数完全相同。

if( isset($_POST['clicks']) ) { 
    incrementClickCount();
}

function getClickCount()
{
    return (int)file_get_contents("clickcount.txt");
}

function incrementClickCount()
{
    $count = getClickCount() + 1;
    file_put_contents("clickcount.txt", $count);
}

这样,您可以通过调用 getClickCount 函数在 HTML 中的任何位置包含当前计数。

    <div>Click Count: <?php echo getClickCount(); ?></div>
</body>

【讨论】:

  • @Atli 将被单击并且计数器将递增的按钮代码在哪里?它只显示 0。我们如何启动计数器?
【解决方案2】:

因为您的 $clicks[0] 是 clickInc 函数的一部分。

$clicsCount = 0
if( isset($_POST['clicks']) ) { 
    $clicsCount = clickInc();
}

function clickInc()
{
    $count = ("clickcount.txt");

    $clicks = file($count);
    $clicks[0]++;

    $fp = fopen($count, "w") or die("Can't open file");
    fputs($fp, "$clicks[0]");
    fclose($fp);

    return $clicks[0];
}

比放

<?php echo $clicsCount; ?>

你需要它的地方

【讨论】:

  • 注意:这仅在单击按钮后有效。没有增量的页面视图将显示0
  • 当然,但是原始脚本的这个功能 =) 可能是他想在点击 1 次以上后显示点击计数器。
  • 非常感谢!这样可行。但是,当我重新加载页面时,它会显示 0 次点击,并且只显示点击按钮时的实际点击次数。有没有办法在加载页面时显示实际点击次数?
  • 添加函数:showCurrentClicks() {return file_get_contents("clickcount.txt");} 并在你想要的地方使用。
猜你喜欢
  • 1970-01-01
  • 2011-11-02
  • 1970-01-01
  • 1970-01-01
  • 2022-12-02
  • 2012-10-06
  • 2017-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多