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

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('Спасибо! Ваш голос учтен!');
}
}
} ?>
 

zuher

Новичок
Всё разобрался сам ))) Сказался глобальный недосып и невнимательность )))
*=*=*=*=*
$chechIp = mysql_query("
SELECT *
FROM `votes`
WHERE `ip` = '{$ip}' AND `id_trk` = '{$id}' AND `date` >= NOW() - INTERVAL 2 MINUTE /// вот тут было неправильно стояло <= вот логика и хромала
");
 

zuher

Новичок
Ragazzo Объясни бестолковому ))) , что там такое ужасное и страшное ))) Я с удовольствием поправлю, сейчас голосовалка работает, по крайней мере меня отметает стабильно )))
Я потому и писал на ваш форум, знаний у меня маловато , скажу больше, практически нет.
 

baev

‹°°¬•
Команда форума
zuher, уберите уже эту оранжевую фигню из подписи.
 

zuher

Новичок
gta4kvs
По поводу этого линка - спасибо, поможет при написании модуля показа рекламы геозависимой ))) А в случае учёта голосов для трека - вполне достаточно той точности определения какая есть на данный момент

baev
мне нравится эта фигня )))
 

zuher

Новичок
gta4kvs
Всё понял дружище )))) Невнимательность моя тупорылая ))) нах проверка мы просто заполняем переменную - спасибище
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
zuher
Убери оранжевую хренотень из подписи, пожалуйста.
 

akd

dive now, work later
Команда форума
zuher
Убери оранжевую хренотень из подписи, пожалуйста.

/* дни терпеливых и вежливых модераторов в макдональдс? :) */
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
zuher
Огромное тебе человечесское спасибо.
 
Сверху