簡體   English   中英

PHP點擊計數器

[英]PHP click counter

我有一個.php腳本,它計算按鈕的點擊次數並將它們放入.txt文件中,這一切都很好,但我現在只能處理一次。 如果,比方說,我制作兩個按鈕,它們將顯示相同的點擊次數。

我需要腳本單獨工作foreach按鈕...

PHP:

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

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

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

HTML:

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="submit" value="click me!" name="clicks">
</form>
<div>Click Count: <?php echo getClickCount(); ?></div>

我想你應該嘗試不同的方法。 首先,保存文件中的點擊次數比數據庫慢,因此您應該使用數據庫而不是文件。

然后,您可以使用button_id字段和相應的click_number字段創建表。 因此,如果單擊id="1"的按鈕,則會增加該按鈕的click_number值。

您可以為第二個按鈕指定另一個名稱,並將數據保存在另一個文件中?

另一種可能性是通過使用例如explode和內implode將所有按鈕信息保存在同一文件中

[編輯:示例]

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

function getClickCount($num=0)
{
    $clickinfo = explode(":",file_get_contents("clickit.txt"));
    return (int)$clickinfo[$num];
}

function incrementClickCount($num=0)
{
    $clickinfo = explode(":",file_get_contents("clickit.txt"));
    $clickinfo[$num]++;
    file_put_contents("clickit.txt", implode(":",$clickinfo));
}

如果兩個按鈕調用相同的功能:

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

當然,你只會得到一個櫃台。

你可以將一個按鈕變成另一個調用另一個函數的形式,或者執行以下操作:

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="submit" value="click me!" name="clicks">
    <input type="submit" value="click me!" name="clicks2">
</form>
<div>Click Count: <?php echo getClickCount(); ?></div>

if( isset($_POST['clicks']) ) { 
    incrementClickCount("button1");
}
if( isset($_POST['clicks2']))
{
    incrementClickCount("button2");
}

function incrementClickCount($button)
{
if($button == "button1")
{
    $count = getClickCount() + 1;
    file_put_contents("clickit.txt", $count);
}
elseif($button = "button2")
{
 // other counter
}

}

你必須使用會話。 首先設置會話變量初始值1,如果它尚未初始化。 初始化后,從第二次點擊開始,每次點擊都會計算+1,因為它會滿足else語句

<?php
session_start();
?>
<html>
    <head></head>
    <body>
        <form method="post" action="submit.php">
            <input type="submit" name="count" value="Start counting" />
        </form>
        <?php
        if(isset($_POST['count'])){
            if(!($_SESSION['count'])){
                $_SESSION['count'] = 1;
            }else{
                $count = $_SESSION['count'] + 1;
                $_SESSION['count'] = $count;
            }
        }
        echo $_SESSION['count'];
        ?>
    </body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM