2013-12-10 129 views
3

我在php中发现了这个脚本,它计算按钮点击并将它们保存到一个txt文件中。回声点击计数php按钮点击计数器

<?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]; 
?> 

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

+0

这看起来这么脏 - 我知道,当你不知道这是相当“艰难”的语言,但你应该看看这些PHP函数''file_get_contents''和''file_put_contents''并与这些玩在php中使用文件并使用文件获得更多练习 – ins0

回答

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); 
} 

有了这一点,你可以包括在你的HTML的任何一点当前计数,通过调用getClickCount功能。

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

非常感谢!完美的作品:) – fafchook

+0

@Atli哪里是按钮代码,将被点击和计数器将增加?它只显示0.我们如何启动柜台? –

0

由于您的$ 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

注意:这仅在点击按钮后才起作用。没有增量的页面视图将显示“0”。 –

+0

原因,但原始脚本的这个功能=)可能是他想在1次点击后显示点击计数器。 – BaBL86

+0

非常感谢!这样可行。然而,当我重新加载页面时,它说0次点击,并且只显示点击按钮时的实际点击次数。有没有一种方法可以显示加载页面时的实际点击次数? – fafchook