Посмотрите пожалуйста логику кода где ошибка?

  • Автор темы Автор темы zuher
  • Дата начала Дата начала

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('Спасибо! Ваш голос учтен!');
}
}
} ?>
 
Всё разобрался сам ))) Сказался глобальный недосып и невнимательность )))
*=*=*=*=*
$chechIp = mysql_query("
SELECT *
FROM `votes`
WHERE `ip` = '{$ip}' AND `id_trk` = '{$id}' AND `date` >= NOW() - INTERVAL 2 MINUTE /// вот тут было неправильно стояло <= вот логика и хромала
");
 
Ragazzo Объясни бестолковому ))) , что там такое ужасное и страшное ))) Я с удовольствием поправлю, сейчас голосовалка работает, по крайней мере меня отметает стабильно )))
Я потому и писал на ваш форум, знаний у меня маловато , скажу больше, практически нет.
 
zuher, уберите уже эту оранжевую фигню из подписи.
 
gta4kvs
По поводу этого линка - спасибо, поможет при написании модуля показа рекламы геозависимой ))) А в случае учёта голосов для трека - вполне достаточно той точности определения какая есть на данный момент

baev
мне нравится эта фигня )))
 
gta4kvs
Всё понял дружище )))) Невнимательность моя тупорылая ))) нах проверка мы просто заполняем переменную - спасибище
 
zuher
Убери оранжевую хренотень из подписи, пожалуйста.
 
zuher
Убери оранжевую хренотень из подписи, пожалуйста.

/* дни терпеливых и вежливых модераторов в макдональдс? :-) */
 
zuher
Огромное тебе человечесское спасибо.
 
Сверху