2013-12-10 176 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