Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844

Бред с голосованием

03.07.2010, 13:07. Показов 1347. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if($id == 'yes')
{
$r = mysql_query(" SELECT * FROM log WHERE idnews='$newsid' "); // считываем логи 
$m = mysql_fetch_array($r);
 
if($m['ip'] == $ip) {header("Location:../result.php?id=rating_error"); exit();} // если за данную новость голосовал $ip - ip который на сайте адресуем его на ошибку
 
if($m['ip'] != $ip) { // если ip не найден делаем операции 
$rrat = mysql_query(" SELECT * FROM news WHERE id='$newsid' ");
$mrat = mysql_fetch_array($rrat);
$rating = $mrat['rating'];
$rating = $rating + 1;
$user_id = 'Гость';
mysql_query(" INSERT INTO log (ip,idnews,usersid) VALUES ('$ip','$newsid','$user_id') ");
mysql_query(" UPDATE news SET rating='$rating' WHERE id='$newsid' ");
header("Location:../result.php?id=rating_ok");}
else header("Location:../result.php?id=rating_error");
}

Так вот, так кой бред, тестим 2 данный скрипт, и у всегда по разному, кто может 10 раз давать рейтинг с 1 ip, кто нет... Я думаю, что если я 1 раз повысил рейтинг, то 2 раз не могу, зато напарник потом спокойно может плюсовать до старости...


Как вообще это исправить и с чем связанно?
Миниатюры
Бред с голосованием  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.07.2010, 13:07
Ответы с готовыми решениями:

Фотоальбом - с голосованием за фотографии
Здравствуйте. Помогите сделать проект. Необходимо создать фотоальбом - с голосованием за фотографии. Загрузку фотографий на сервер...

модуль ТОП сайтов с голосованием
Хочу на сайте сделать небольшой рейтинг определенных сайтов. К примеру в админке или как то в шаблоне, добавляю к примеру 10 сайтов,...

Обновление DIV блока с голосованием
Друзья подскажите как обновить блок на сайте без перезагрузки! Есть блок с голосованием - он находить в слайдере - нужно сделать что бы...

10
 Аватар для Nazz
898 / 729 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
03.07.2010, 13:17
а естли так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
if($id == 'yes')
{
$r = mysql_query(" SELECT * FROM log WHERE idnews='$newsid' "); // считываем логи 
$m = mysql_fetch_array($r);
$w=0;
for ($i=0;$i<mysql_num_rows($m);$i++)
{
if($m['ip'] == $ip)
$w=1;
} 
if($w==1) {header("Location:../result.php?id=rating_error"); exit();} // если за данную новость голосовал $ip - ip который на сайте адресуем его на ошибку
 
if($w==0) { // если ip не найден делаем операции 
$rrat = mysql_query(" SELECT * FROM news WHERE id='$newsid' ");
$mrat = mysql_fetch_array($rrat);
$rating = $mrat['rating'];
$rating = $rating + 1;
$user_id = 'Гость';
mysql_query(" INSERT INTO log (ip,idnews,usersid) VALUES ('$ip','$newsid','$user_id') ");
mysql_query(" UPDATE news SET rating='$rating' WHERE id='$newsid' ");
header("Location:../result.php?id=rating_ok");}
else header("Location:../result.php?id=rating_error");
 
}
1
 Аватар для GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
03.07.2010, 13:47
или так:
PHP
1
2
3
4
$r = mysql_query(" SELECT * FROM log WHERE idnews='$newsid' && ip='$ip' LIMIT 1"); // считываем логи 
$m = mysql_fetch_array($r);
 
if($m['ip'] == $ip) {header("Location:../result.php?id=rating_error"); exit();}
Добавлено через 1 минуту
кстати, ошибку никак не мог разглядеть
только после сообщения Nazz-а заметил
1
 Аватар для nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
03.07.2010, 23:45  [ТС]
Все заработало спасибо, воспользовался данным методом:

PHP
1
mysql_query(" SELECT * FROM log WHERE idnews='$newsid' && ip='$ip' LIMIT 1");
но не понял прикола с && ip='$ip' LIMIT 1 объясните пожалуйста зачем брать еще ip да и с лимитом ?
0
 Аватар для Bomboos
15 / 15 / 3
Регистрация: 04.10.2009
Сообщений: 219
04.07.2010, 00:12
попробуй сделать такой алгоритм.
1. Делаем две таблици, 1 - голосовавшие, 2 - результаты.

Шаг 2. Голосуем
Шаг 3. Сохраняем cookie на копме пользователя, заносим его IР в базу
Шаг 4. Делаем проверку, есле у пользователя на компе есть куки или его IР в базе выводим ошибку, иначе добавляем iр в базу и добавляем результат голосования

Добавлено через 6 минут
куки нужны,
На пример: у пользователя статический IР, Т.Е. сегодня один, завтро другой. Поэтому есле на компе есть куки, а ип изменился всеровно сможем опредилить , что юзер голосовал. Хотя и куки не эфективны. Их можно тупо почистить ну процедура накрутки становиться долгой, и "ХАКЕРУ" не хватает терпения
1
 Аватар для GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
04.07.2010, 00:41
Цитата Сообщение от nepster Посмотреть сообщение
&& ip='$ip'
ip мы не берем, это просто проверяется в условии
а нужно как раз для того, чтобы проверять поднимали ли уже рейтинг с данного ip
Цитата Сообщение от nepster Посмотреть сообщение
LIMIT 1
а это для оптимизации запроса. т.к. нам нужна всего одна запись, вот мы и говорим субд, что если она наткнется на подходящую запись в таблице, то возвращать результат и не просматривать таблицу до конца
1
 Аватар для Bomboos
15 / 15 / 3
Регистрация: 04.10.2009
Сообщений: 219
04.07.2010, 00:49
Цитата Сообщение от Bomboos Посмотреть сообщение
попробуй сделать такой алгоритм.
1. Делаем две таблици, 1 - голосовавшие, 2 - результаты.

Шаг 2. Голосуем
Шаг 3. Сохраняем cookie на копме пользователя, заносим его IР в базу
Шаг 4. Делаем проверку, есле у пользователя на компе есть куки или его IР в базе выводим ошибку, иначе добавляем iр в базу и добавляем результат голосования

Добавлено через 6 минут
куки нужны,
На пример: у пользователя статический IР, Т.Е. сегодня один, завтро другой. Поэтому есле на компе есть куки, а ип изменился всеровно сможем опредилить , что юзер голосовал. Хотя и куки не эфективны. Их можно тупо почистить ну процедура накрутки становиться долгой, и "ХАКЕРУ" не хватает терпения

Мне вот вот это в голову взбрело.
Я правильно хоть разсуждаю?
1
 Аватар для nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
04.07.2010, 01:47  [ТС]
Bomboos

У хакера есть браузер К-Хамелион с динамическим куки ))) от этого никто не спасен... + Тор и куча скриптов которые сами голосуют... Например программы которые повторяют действия, записал 1 раз алгоритм "заходим в тор меняем ip, заходим на сайт, голосуем, и так циклически" Это как сказать защита "от лоха", да и голосование не такое серьезное )

Скорее нужно все фиксировать в файла на сервере, но это будет большой нагрузкой =)


GаlаX

Спасибо, буду знать !


Не по теме:

Можно ли узнать физический адрес (мак адрес) средствами веб технологий ? и проводить с ним работу как с ip. Например реально реализовать бан на сайте по железу?

0
 Аватар для Bomboos
15 / 15 / 3
Регистрация: 04.10.2009
Сообщений: 219
04.07.2010, 11:13
Цитата Сообщение от nepster Посмотреть сообщение
Bomboos

У хакера есть браузер К-Хамелион с динамическим куки ))) от этого никто не спасен... + Тор и куча скриптов которые сами голосуют... Например программы которые повторяют действия, записал 1 раз алгоритм "заходим в тор меняем ip, заходим на сайт, голосуем, и так циклически" Это как сказать защита "от лоха", да и голосование не такое серьезное )

Скорее нужно все фиксировать в файла на сервере, но это будет большой нагрузкой =)


GаlаX

Спасибо, буду знать !


Не по теме:

Можно ли узнать физический адрес (мак адрес) средствами веб технологий ? и проводить с ним работу как с ip. Например реально реализовать бан на сайте по железу?

От хакерских скриптов можно использовать капачу. К примеру на ява скрипт написать: после нажатия по кнопке голосовать - открывается окно с капачей. Вводим верно, добавляем. Неверно - заново.
1
 Аватар для nepster
61 / 61 / 11
Регистрация: 19.09.2009
Сообщений: 844
04.07.2010, 12:25  [ТС]
ну да и много людей будет голосовать? ) Это уже издевательство )
0
3 / 3 / 1
Регистрация: 19.09.2010
Сообщений: 269
06.01.2011, 21:43
а можно ссылку как сделать рейтинг с нуля??? а то в инете и не так уж много толкового материала! в общем у меня база пользователями! выводит список регистрированных и чтобы там можно было нажать скажем на имя и окошко с рейтингом!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.01.2011, 21:43
Помогаю со студенческими работами здесь

Фотогарелея flash с комментариями или голосованием
Есть фото-галерея. Работает. Но начальство хочет, чтобы к каждой фотке можно было либо комменты оставлять, либо оценки ставить. На флеше...

Выведите фамилии всех кандидатов в лексикографическом порядке
Как известно, в США президент выбирается не прямым голосованием, а путем двухуров- невого голосования. Сначала проводятся выборы в каждом...

С# и бред на С++
Ребят, гляньте задачку. Нашел вариант решения её на С++(походу не правильный), но не получается сделать её на С#, помогите пожалуйста, а...

Бред
Захожу сегодня в статистику на один из сайтов, и смотрю что на сайт зашли по запросу &quot;******** проститутки&quot; аж 3 человека. Ввожу...

Бред с ГД
Написал функцию function cap() { session_start(); header('content-type: image/jpeg'); $img = imagecreatetruecolor(60,15); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru