461 / 461 / 6
Регистрация: 08.05.2013
Сообщений: 239
|
|||||||||||
1 | |||||||||||
Если ip в базе существует, то07.03.2016, 23:36. Показов 1934. Ответов 15
Метки нет (Все метки)
Всем привет.
Подскажите, пожалуйста пару строк кода. как проверить существует ли такой ip в базе ?
Есть несколько кандидатов, и на данный момент пользователь может оставить свой голос у каждого. т.е. проверка проходит еще и по id кандидата. Это лишнее. Я бы хотел, чтобы пользователь смог проголосовать только один раз ВООБЩЕ! и всё. Для этого нужно сравнить его ip с теми, что есть в базе и вывести соответствующий запрет. Заранее Спасибо.
1
|
07.03.2016, 23:36 | |
Ответы с готовыми решениями:
15
Как правильно сделать вывод 404 ошибки, если id в базе не существует Если h-файл существует, подключить его, если не существует, проигнорировать Добавить если не существует, показать если существует (SQL-запрос) Как открыть файл на чтение и запись, создав его, если его не существует, и перезаписать, если он существует? |
2169 / 1652 / 840
Регистрация: 10.01.2015
Сообщений: 5,190
|
|
07.03.2016, 23:48 | 2 |
А что сложного?
Для этого даже IP знать не надо. Например, создаете столбец в БД с нулем (или NULL) по дефолту. Как юзер проголосует - пишите этому юзеру в столбец "1" и все. Юзер больше голосовать не сможет. Добавлено через 1 минуту А с IP просто проксю использовать могут.
2
|
461 / 461 / 6
Регистрация: 08.05.2013
Сообщений: 239
|
|
08.03.2016, 07:09 [ТС] | 3 |
Регистрации нет. Проголосовать может любой. Один посетитель, один ip.
Динамические ip, прокси, Thor, VPN и т.д. во внимание не беру. Достаточно будет по ip.
1
|
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
|
||||||
08.03.2016, 08:06 | 4 | |||||
Сообщение было отмечено Alexander519151 как решение
Решение
Это же обычный запрос:
2
|
461 / 461 / 6
Регистрация: 08.05.2013
Сообщений: 239
|
||||||
08.03.2016, 08:32 [ТС] | 5 | |||||
Да, запрос простой, но я его не знаю.
У меня вот такой код, благодаря Вам всё работает.
1
|
461 / 461 / 6
Регистрация: 08.05.2013
Сообщений: 239
|
|
08.03.2016, 08:42 [ТС] | 7 |
0
|
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
|
||||||
08.03.2016, 08:51 | 9 | |||||
Alexander519151, я показал пример с расчётом на то, что он будет использоваться как prepared statement в PDO или MySQLi.
Если Вы используете mysql_* функции, то делать нужно так:
И ещё, IP лучше хранить в поле "INT", преобразовывая IP в число.
2
|
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
|
||||||
08.03.2016, 08:59 | 11 | |||||
Ахахаха. Блин, совсем невнимательный стал. Я-ж забыл таблицу указать. Alexander519151, вот правильно:
3
|
461 / 461 / 6
Регистрация: 08.05.2013
Сообщений: 239
|
||||||
08.03.2016, 09:27 [ТС] | 12 | |||||
Интересно. сразу не обратил внимание, т.к. уже было много голосов (пока тестировал на локальном сервере) и главное было заблокировать повторное голосование.
Повторно голоса не учитывались. А точнее вообще не учитывались. Очистил базу, проголосовал, а мне запрещено. База пустая. Голосовать нельзя. Вот код, подскажите, пожалуйста, как правильно.
1
|
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
|
|||||||||||
08.03.2016, 09:36 | 13 | ||||||||||
2
|
461 / 461 / 6
Регистрация: 08.05.2013
Сообщений: 239
|
|||||||||||||||||||||
08.03.2016, 10:10 [ТС] | 14 | ||||||||||||||||||||
Ладно, Господа, всем спасибо.
Сделал так: -в момент клика удаляем записи до сегодняшней даты. -получаем ip -заносим в базу ip, id кандидата и завтрашнюю дату. -если юзер сегодня голосовал за кандидата, то запрещаем -если нет то разрешаем, запоминаем за кого, ip и дату. примерно так. Остался один момент: Думаю не особо важный, но желательный. Подключиться к базе на уделенном хостинге. раньше (5 лет назад) было по другому. На локальном так:
Сейчас не могу подключиться.
кстати вот весь код. файл с кандидатами (Omsk_Women_2016.php)
1
|
5753 / 4133 / 1507
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
08.03.2016, 10:23 | 15 |
2
|
461 / 461 / 6
Регистрация: 08.05.2013
Сообщений: 239
|
|
08.03.2016, 10:55 [ТС] | 16 |
Нет, никак не получалось.
Хотел просто: запомнили ip и все. повторно с этого ip голосовать нельзя. И не нужно проверять дату и время. Еще бы к базе подключиться (на хостинге). Добавлено через 26 минут Всё разобрался, подключился. Всё работает. Использовал код приведенный мной выше. К базе подключился. Внимательнее нужно быть.
1
|
08.03.2016, 10:55 | |
08.03.2016, 10:55 | |
Помогаю со студенческими работами здесь
16
Добавление записи, если не существует, обновление. если существует существует ли в языке Си функция replace? и если существует то как работает? Определить существует ли треугольник с такими длинами сторон и, если существует, будет ли он прямоугольным Определить существует ли треугольник со сторонами а, b, c и если существует, то является ли он равностонним равнобедренным или разносторонним Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |