【问题标题】:Count and display number of downloads/button clicks on website [closed]计算并显示网站上的下载/按钮点击次数[关闭]
【发布时间】:2020-06-10 09:59:11
【问题描述】:

我想做的是,在我的网站上,我想显示一个计数器,每次有人按下页面上的下载按钮(已经存在)时,计数器都会增加。此计数器不应存储在本地,而应存储在服务器上。这样计数器就会增加每个人,而不仅仅是一个用户。解决这个问题的最佳方法是什么? 提前感谢您的帮助

【问题讨论】:

  • 如果按钮被按下,计数器加一。
  • 你可以使用socket.io
  • 可以使用数据库,每次点击更新DB号码+1
  • 将计数器增加 1。例如。 counter=counter+1 where id=movieid

标签: javascript php html


【解决方案1】:

将以下代码放入名为counter.php的文件中

PHP 代码的每一行都在描述它自己的重要性

<?php

 $counter = 'path/to/counter.txt';      // text file to store download count - create manually and put a 0 (zero) in it to begin the count
 $download = 'http://mywebsite.com/file/to/download.zip';    // the link to your download file

 $number = file_get_contents($counter);    // read count file
 $number++;                                // increment count by 1
 $fh = fopen($counter, 'w');               // open count file for writing
 fwrite($fh, $number);                     // write new count to count file
 fclose($fh);                              // close count file
 header("Location: $download");            // get download

?>

创建在$counter 中定义的text file,其位置如上面value/location 所述,只需将0(零)放入其中。示例代码文件名为counter.txt

创建指向counter.php 文件的下载链接,而不是实际的下载文件

你下载的button代码

<a href="path/to/counter.php">DOWNLOAD</a>

要在您的网页上显示下载count,只需将此代码放在该特定页面上

<?php echo file_get_contents('path/to/counter.txt');?>

【讨论】:

    【解决方案2】:

    服务器无法跟踪是否单击了按钮,但通常在单击按钮时会向服务器发出请求。

    如果您创建了download.php 可以将文件发回,这也为您提供了增加计数器的机会。

    这个号码必须保存在服务器上。在数据库或文件中。

    这个问题也在这里问和回答:PHP making a download counter without leaving the current page

    它包括示例代码。

    【讨论】:

      【解决方案3】:

      您可以通过将强大的后端与数据库或缓存(如 redis)相结合来轻松实现这一目标。

      单击按钮时,您可以创建一个偶数侦听器,该侦听器必须向您的后端发送触发器。您的后端需要通过增加数据库中的值或增加存储在缓存中的值来处理进一步的逻辑。对于这个用例,我更喜欢像 redis 这样的缓存。

      对于静态计数器

      如果您想显示一个在页面打开时只显示静态值的静态计数器,那么您可以添加一个模块以在发生onload 事件时从数据库或缓存中获取计数。

      实时计数器

      如果您要实现的是动态更新的实时计数器,没有显式事件触发器,那么您需要使用 JS WebSocketWorker

      参考:

      WebSocketAPI - https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API

      工作者 API - https://developer.mozilla.org/en-US/docs/Web/API/Worker

      【讨论】:

        猜你喜欢
        • 2017-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-29
        相关资源
        最近更新 更多