zuher
Новичок
Смысл в следующем. Ограничить голосования на какой то промежуток времени для определенного айпишника. Построили вот такую структуру, но логика работает наоборот ))) Вместо того чтобы не давать голосовать 2 минуты, она наоборот дает голосовать две минуты, потом выдает "Зайдите позже" обнуляет записи и снова дает голосовать две минуты ))))
Вот сам код:
<?php
include ("подключаем базу");
if (isset($_POST['score'])){
$score = $_POST['score'];
}
if (isset($_POST['id'])){
$id = $_POST['id'];
}
if (!preg_match("|^[\d]+$|", $id)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
if (!preg_match("|^[\d]+$|", $score)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
$ip = $_SERVER["REMOTE_ADDR"];
if($ip > 0) {
$gogo = mysql_query("
SELECT `golos`,`q_vote`
FROM `downloadtreck`
WHERE `id` = '{$id}'
LIMIT 1
");
$myrow = mysql_fetch_array($gogo);
$newgolos=$myrow['golos']+$score;
$newqvote=$myrow['q_vote']+1;
if(mysql_num_rows($gogo) < 1) {
exit('Трек не найден в Базе!');
} else {
$chechIp = mysql_query("
SELECT *
FROM `votes`
WHERE `ip` = '{$ip}' AND `id_trk` = '{$id}' AND `date` <= NOW() - INTERVAL 2 MINUTE
");
mysql_query("
DELETE
FROM `votes`
WHERE `date` <= NOW() - INTERVAL 2 MINUTE AND `id_trk` = '{$id}'
");
if(mysql_num_rows($chechIp) > 0) {
exit('Вы уже голосовали. Попробуйте через несколько минут.');
} else {
mysql_query("
INSERT
INTO `votes`(`ip`,`date`,`id_trk`)
VALUES('{$ip}',NOW(),'{$id}')
");
mysql_query("
UPDATE `downloadtreck`
SET `golos` = '{$newgolos}', `q_vote` = '{$newqvote}'
WHERE `id` = '{$id}'
");
exit('Спасибо! Ваш голос учтен!');
}
}
} ?>
Вот сам код:
<?php
include ("подключаем базу");
if (isset($_POST['score'])){
$score = $_POST['score'];
}
if (isset($_POST['id'])){
$id = $_POST['id'];
}
if (!preg_match("|^[\d]+$|", $id)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
if (!preg_match("|^[\d]+$|", $score)) {
exit ("<p>Неверный формат запроса! Проверьте URL!");
}
$ip = $_SERVER["REMOTE_ADDR"];
if($ip > 0) {
$gogo = mysql_query("
SELECT `golos`,`q_vote`
FROM `downloadtreck`
WHERE `id` = '{$id}'
LIMIT 1
");
$myrow = mysql_fetch_array($gogo);
$newgolos=$myrow['golos']+$score;
$newqvote=$myrow['q_vote']+1;
if(mysql_num_rows($gogo) < 1) {
exit('Трек не найден в Базе!');
} else {
$chechIp = mysql_query("
SELECT *
FROM `votes`
WHERE `ip` = '{$ip}' AND `id_trk` = '{$id}' AND `date` <= NOW() - INTERVAL 2 MINUTE
");
mysql_query("
DELETE
FROM `votes`
WHERE `date` <= NOW() - INTERVAL 2 MINUTE AND `id_trk` = '{$id}'
");
if(mysql_num_rows($chechIp) > 0) {
exit('Вы уже голосовали. Попробуйте через несколько минут.');
} else {
mysql_query("
INSERT
INTO `votes`(`ip`,`date`,`id_trk`)
VALUES('{$ip}',NOW(),'{$id}')
");
mysql_query("
UPDATE `downloadtreck`
SET `golos` = '{$newgolos}', `q_vote` = '{$newqvote}'
WHERE `id` = '{$id}'
");
exit('Спасибо! Ваш голос учтен!');
}
}
} ?>