单击锚点时如何存储cookie

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击锚点时如何存储cookie相关的知识,希望对你有一定的参考价值。

我正在计算锚点击次数并存储.txt文件中的点击次数。单击锚点时,数字会增加1.我没有使用用户管理系统,因此为了防止用户多次点击锚点,我需要存储一个cookie。但我确实有多个锚点。如果用户点击锚点1,则锚点1上的点击事件数量会增加1.他不应该在锚点1上再次点击一次,至少:它不应该再增加1。但对于该用户,他仍然必须能够点击锚2和锚3并且它应该增加1.然后,当用户点击它时,这些锚也不应再增加1。

我怎样才能实现这一目标?

这是我的html;

<?php
$clickcount = explode("
", file_get_contents('counter.txt'));
foreach($clickcount as $line){
$tmp = explode('||', $line);
$count[trim($tmp[0])] = trim($tmp[1]);
}

?>

<a href="#count" class="click-trigger" data-click-id="count1">Like</a> 
<span class="click-count"><?php echo $count['count1'];?></span> likes.

<a href="#count" class="click-trigger" data-click-id="count2">Like</a> 
<span class="click-count"><?php echo $count['count2'];?></span> likes.

<a href="#count" class="click-trigger" data-click-id="count3">Like</a> 
<span class="click-count"><?php echo $count['count3'];?></span> likes.

js:

$(document).on('click', '.click-trigger', function()
{
   var data = {'id':$(this).attr('data-click-id')};
   var count = $(this).next(".click-count");


   $.ajax({
   type : 'POST',
   url  : 'counter.php',
   data : data,
   success :  function(data)
       {                                                
            $(".click-count").fadeIn(500).show(function()
            {
                count.html(data);

            });                     
       }
   });
   return false;
 });

这是文件counter.php

$file = 'counter.txt'; // path to text file that stores counts
$fh = fopen($file, 'r+');
$id = $_REQUEST['id']; // posted from page
$lines = '';
while(!feof($fh)){
   $line = explode('||', fgets($fh));
   $item = trim($line[0]);
   $num = trim($line[1]);
   if(!empty($item)){
     if($item == $id){
       $num++; // increment count by 1
       echo $num;

     }
     $lines .= "$item||$num
";
   }
 } 
 file_put_contents($file, $lines);
 fclose($fh);

文件counter.txt看起来像这样:

count1||36
count2||124
count3||12
答案

在设置php的cookie值时可以在项目编号数组上使用serialize,在读取cookie时可以使用unserialize。您将获得一个整数数组,并可以使用in_array检查用户是否已经单击了该链接。

以上是关于单击锚点时如何存储cookie的主要内容,如果未能解决你的问题,请参考以下文章

单击锚点时如何防止滚动到顶部(href =“ID”)

当我单击 html“<a>Download</a>”中的锚点时,我正在尝试下载 excel 文件 [关闭]

单击锚点后如何刷新页面并加载到顶部,忽略锚点并重置回顶部?

如何让我的导航栏在滚动通过锚点时更改 CSS 类?

设置标题锚点时如何防止标题标签继承超链接样式

使用 xpath 选择锚点时,Href 属性为空