powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Делаю фотоконкурс. помощь с ограничением по времени голосования
21 сообщений из 21, страница 1 из 1
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37796543
GeoNat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, доделываю скрипт конкурса фотографий! и вот в чём загвоздка! принимаю голос по ИП после конечно же у него больше нет прав голосовать! хочу сделать так что бы ИП блокировался на определённое время! допустим хочу чтобы голос можно было отдавать через час,два,день! вы поняли! хочу назначит период за отдавание голоса! подскажите как можно сделать такое при помощи PHP+MYSQL . с базой это дело связано а то смотрел разные примеры и там всё в куках или сессиях!
С Уважением, GeoNat!
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37796614
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeoNat,

храните в БД IP и дату голосования.
при попытке голосования смотрите голосовал ли данный адрес, и если да - то прошел ли заданный вами промежуток времени.
если прошел учитываем голос и обновляем в базе время голосования для данного адреса.
если период не прошел - сообщаем что так часто голосовать нельзя
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37797413
GeoNat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
r u,

спасибо я так и делаю! меня больше интурисует функция . вычисления периода! можете показать пример?! )
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37797417
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37797428
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если использовать СУБД то это не пригодится, зачем сбивать столку?
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37797456
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HettЕсли использовать СУБД то это не пригодится, зачем сбивать столку?
ибо мы в форуме по php.
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37797553
GeoNat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, но вот меня заинтерисовал ответ от Hett

HettЕсли использовать СУБД то это не пригодится, зачем сбивать столку?


Hett, вы можете предложить что то другое?
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37797555
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37797650
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
SELECT COUNT(*) FROM tables_ip WHERE ip = INET_ATON('ваш айпи') AND date_vote + INTERVAL 1 DAY > NOW()
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37797787
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett
Код: sql
1.
SELECT COUNT(*) FROM tables_ip WHERE ip = INET_ATON('ваш айпи') AND date_vote + INTERVAL 1 DAY > NOW()


ну вернет ваш запрос ноль.
это что значит? что с данного адреса никто не голосовал(надо сделать insert) или что таймаут еще не прошел(ничего не надо делать)? ))
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37797831
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
INSERT INTO tables_ip (id, ip, date_vote)
VALUES (NULL, INET_ATON(:ip), NOW())
ON DUPLICATE KEY UPDATE date_vote = IF(date_vote - INTERVAL 1 DAY > NOW(), NOW(), date_vote)



Но лучше так не делать. Вообще я не сказал, что "возьмите этот запрос и используйте его". Свою голову все равно использовать придется же чо.
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37798088
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

на уровне приложения как он узнает что вывести юзеру - что его голос учтен или что ему нельзя так часто голосовать или что его голос учтен повторно?
зачем в данном случае логику пихать в бд?
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37798504
GeoNat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверное будет лучше выводить данные из бд и обрабатывать ПХП скриптом как вы и говорите r u ? просто нехочу чтобы БД заморачивалась на такие запросы! или всё таки стоит в БД всё решать?
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37798525
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeoNat,

как хотите. я бы не заморачивался и сделал элементарно
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
$timeout = 60*60*3; // 3 hours
$vote = obj('db')->row('SELECT datev FROM votes WHERE ip=?', $ip);
if (!$vote) { // не голосовал
	// добавляем голос в БД
}
else if (time()-$vote['datev'] > $timeout) { // голосовал но таймаут уже прошел
	// обновляем голос в БД
}
else {
	// пишем юзеру что можно голосовать не чаще чем раз в 3 часа
}

...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37798528
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
SELECT COUNT(*) cnt, MAX(date_vote) + INTERVAL 1 DAY < NOW() allow_vote
FROM tables_ip 
WHERE ip = INET_ATON('ваш айпи')


не забудьте индексы
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37798539
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u,

возможно еще придется заморачиваться с часовыми поясами.
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37798549
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hettr u,
возможно еще придется заморачиваться с часовыми поясами.
зачем?
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37798558
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uHettr u,
возможно еще придется заморачиваться с часовыми поясами.
зачем?
Это я о том, что если работать с time() в php и CURRENT_DATE или NOW() в мускуле.
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37798576
GeoNat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем огромное! очень помогли )))
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37798598
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hett,

можете выделить преимущества вашего подхода?
...
Рейтинг: 0 / 0
Делаю фотоконкурс. помощь с ограничением по времени голосования
    #37798654
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uHett,

можете выделить преимущества вашего подхода?
да особых как бы и нету, мне моя логика кажется нагляднее.

PS^ кстати про time я прогнал, возможно, оно не зависит от временной зоны.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Делаю фотоконкурс. помощь с ограничением по времени голосования
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]