单击锚点时如何存储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的主要内容,如果未能解决你的问题,请参考以下文章