запрет повторных нажатий кнопки Like
1.
Дмитрий (25.08.2012 / 19:33)
Всем привет. сделал кнопку Like/ Теперь надо сделать, чтобы нельзя было поставить больше одного лайка к одной статье. Решил записывать куку. И вот проблема в проверке.
$ss = mktime(0,0,0,1,1,2020);
setcookie("likes[$id]", $id, $ss);//записал куку
в итоге имею переменную $likes[4] = 4
до записи стоит проверка:
if($likes[$id]!=$id){//прибавляем плюс один}
но эта хрень не работает!!(
2.
Иван (25.08.2012 / 19:46)
помойму надо if($_COOKIE[$likes[$id]]!=$id){//прибавляем плюс один}
3.
YeachAgBitch (25.08.2012 / 20:03)
а если куки отключены? записывай ip
4.
Дмитрий (25.08.2012 / 20:26)
3.
YeachAgBitch, проверять буду, включены ли куки
5.
Андрей (25.08.2012 / 20:31)
Куки и почистить можно, не?
Не проще сделать так, чтобы пользователь при повторном нажатии мог забрать лайк назад и всё?
Автор, как напишешь, покажи мне творение.
6.
Вантуз-мен (25.08.2012 / 20:43)
1.
sadiev, это нужно хранить не у пользователя, а у себя, иначе толку от этих лайков, все равно придется переписывать
7.
Захар (28.08.2012 / 12:03)
Записывай допустим в базу ид поставившие Лайк. С куками это совсем неудачный выбор.
8.
юЮЮфюв (28.08.2012 / 12:13)
Я записывал в базу. Вот алгоритм добавления:
<?php
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `otvet` WHERE `id` = '". input(num($_GET['id'])) ."' LIMIT 1"), 0) == 0)
{
header('Location: /');
}
if ($user['id']<1){
header('Location: /');
}
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `like` WHERE `autor` = '".input(num($user['id']))."' && `otvet` = '".input(num($_GET['id']))."'"), 0);
if($count!=0){
header('Location: /');
}
$result = mysql_query("SELECT * FROM `otvet` WHERE `id` = '".input(num($_GET['id']))."'");
$res = mysql_fetch_assoc($result);
$cat = $res['cat'];
$quest = $res['quest'];
mysql_query("INSERT INTO `like` SET `autor` = '". input(num($user['id'])) ."', `otvet` = '".input(num($_GET['id']))."',`cat` = '".input(num($cat))."',`quest` = '".input(num($quest))."'");
header('Location: /catalogue/questions.php?id='.num($_GET['return']).'&page='.$_GET['page']).'';
?>
Добавлено через 06:16 сек.
Функция вывода ссылки/текста с проверкой, кликал ли по ней юзер
<?php
function like($var,$var2,$var3,$var4){
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `like` WHERE `autor` = '".input(num($var2))."' && `otvet` = '".input(num($var))."'"), 0);
$count2 = mysql_result(mysql_query("SELECT COUNT(*) FROM `like` WHERE `otvet` = '".input(num($var))."'"), 0);
if($var2>0){
if($count==0){return '<a href="/catalogue/like.php?id='.$var.'&return='.num($var3).'&page='.$var4.'"><img src="/design/images/like.png" alt="smile" /> Мне нравится ('.$count2.')</a>';}
else{
return '<img src="/design/images/like.png" alt="smile" /> Мне нравится ('.$count2.')';
}
}
} ?>
URL:
https://visavi.net/topics/34149