【问题标题】:how to store cookie when click on anchor单击锚点时如何存储cookie
【发布时间】:2018-08-09 10:48:22
【问题描述】:

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

我怎样才能做到这一点?

这是我的html;

<?php
$clickcount = explode("\n", 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\r\n";
   }
 } 
 file_put_contents($file, $lines);
 fclose($fh);

文件counter.txt 如下所示:

count1||36
count2||124
count3||12

【问题讨论】:

    标签: javascript php cookies


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-02-18
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 2013-01-27
      • 2013-01-15
      • 1970-01-01
      • 2010-12-12
      • 2012-09-28
      相关资源
      最近更新 更多