|
|
|
| У меня на странице есть голосование по 10-бальной шкале.
Когда пользователь голосует то на эту-же страницу передается переменная g ($g)
со значением типа; localhost/test1.php?g=6<1
Где 6-выбраный им бал,а 1-номер.
Нужно сделать так что-бы пользователь мог проголосовать только один раз,при этом надо учитывать номер так как каждый номер должен сохранятся в сессии.
Например: пользователь зашел localhost/test1.php?g=6<1 -проголосовал,
потом зашел localhost/test1.php?g=6<2 -проголосовал,
потом зашел localhost/test1.php?g=6<3 -проголосовал,
потом зашел localhost/test1.php?g=6<(1 или 2 или3 ) -а ему высвечивается что он уже голосовал.
Я писал что-то типа :
session_start();
Тут всякая ерунда .
if($g){
$ly = explode("<", $g);
$n=$ly[1];
if($n!=$_SESSION[n]) { $_SESSION[n]=$n ;}
else{echo "Bad";}
}
|
Надеюсь кто-то поймет | |
|
|
|
|
|
|
|
для: kest131
(29.07.2005 в 14:01)
| | А в чём проблема? | |
|
|
|
|
|
|
|
для: cheops
(29.07.2005 в 14:10)
| | Нужно сделать так что-бы пользователь мог проголосовать только один раз,при этом надо учитывать номер так как каждый номер должен сохранятся в сессии.
Мой код не работает | |
|
|
|
|
|
|
|
для: kest131
(29.07.2005 в 14:13)
| | А голосование привязывать нужно к IP-адресу и сессии или только к сессии? Ведь пользователь может просто выключить браузер и проглосовать по-новой. | |
|
|
|
|
|
|
|
для: cheops
(29.07.2005 в 16:57)
| | По ip было-бы лучше но я не знаю как.
Может ты знаеш cheops .Если знаеш напиши как. | |
|
|
|
|
|
|
|
для: kest131
(29.07.2005 в 19:29)
| | IP-адрес всегда можно извлечь при помощи суперглобального массива $_SERVER['REMOTE_ADDR'], проблема только заключается в его сохранении - доступна ли вам база данных MySQL? | |
|
|
|
|
|
|
|
для: cheops
(29.07.2005 в 19:36)
| | MySQL-не проблема.Наверное так и сделаю | |
|
|
|
|
|
|
|
для: cheops
(29.07.2005 в 19:36)
| | Однако многие люди сидят под одним IP и одним провайдером.
Нельзя ли как нибуть более детально определять и сортировать пользователей. | |
|
|
|
|
|
|
|
для: cheops
(29.07.2005 в 19:36)
| | Однако многие люди сидят под одним IP и одним провайдером.
Нельзя ли как нибуть более детально определять и сортировать пользователей. | |
|
|
|
|
|
|
|
для: kest131
(29.07.2005 в 19:29)
| | ну например, если это так важно, можно сверяться по cookie о пользователе и тогда проверять. можно также вести отдельный cookie под голосование - но это было бы глупо. | |
|
|
|
|
|
|
|
для: Денис
(29.07.2005 в 19:36)
| | cookie Можно отключить или удалить так что это не выход | |
|
|
|
|
|
|
|
для: kest131
(29.07.2005 в 19:41)
| | хорошо, ну если куки можно удалить, то как вы тогда будете проверять залогиневшегося пользователя? он же не будет каждый раз вводить свои данные? а те данные, кот получаются после того, когда было сделано голосование, будут храниться либо в кукисах и потом передаваться на сессиях, либо же у вас на машине в базе даных. | |
|
|
|
|
|
|
|
для: Денис
(29.07.2005 в 19:56)
| | Пользователь может удалять не все куки а те которые нужны.
Пользователь также будет проверятся через сессии.
Мой ICQ :203-247-054(Если хочеш поспорить) | |
|
|
|
|
|
|
|
для: kest131
(29.07.2005 в 20:30)
| | Не надо спорить. Тот, кто захочет накрутить счетчик голосований, найдет способ его накрутить, если хватит квалификации, будте уверены! Кукисы можно удалить. Сессия уже не определится. И проголосовать по-новой. IP-адрес можно поменять. Просто зайти через какой-нибудь общедоступный прокси-сервер. И тоже проголосовать по новой. А если накрутчик будет ну совсем уж крутой - просто напишет прогу или скрипт, который будет автоматически голосовать, пользуясь целым списком из пары сотен proxy-серверов. Может помешать проверка на ввод текста с динамически генерируемой картинки. Опять же, если фон будет простым, а текст четким - злоумышленник просто будет вычитать этот фон из изображения, и распознавать текст. Хотя, это, конечно будет сложнее, и не всякий возмется, если голосование не стоит того, чтобы такими усилиями накручивать. Очень затруднить жизнь спамеру могут такие изображения с кодами для подтверждения, которые генерируются, например, службой регистрации icq-номеров. В клиенте, или на сайте - не важно. Вот там, фон очень часто меняется. А если еще делать переменное количество трудноразличимых символов, как это сделано в форме отправки sms на [url]www.mts.ru[/url] - можно говорить о защите от повторных голосований.
Примите идею к сведению. ;) | |
|
|
|
|
|
|
|
для: JC_Piligrim
(29.07.2005 в 22:58)
| | Почти год назад обсуждался вопрос о защите от накруток при голосовании http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=266, ещё одна форма, к которой прибегают, голосование с подтверждением по e-mail, причём без учёта голосов с бесплатных почтовых ящиков, но это жёсткая мера, исключающая голоса большей половины RuNet-а, к тому же всё равно можно крутить систему, если имеется свой собственный выделенный сервер и домен. | |
|
|
|
|
|
|
|
для: cheops
(29.07.2005 в 23:15)
| | Отсюда мораль с небольшой оговоркой. =)
Мораль: "Все, что может быть взломано - будет взломано, все, что может быть скопировано - будет скопировано!"
Оговорка: Если у того, кто будет претворять вышеозначенный тезис в жизнь, будет достаточно сильная мотивация и необходимая квалификация, которая частично может быть заменена смесью таланта, пытливого ума и поразительного упорства в достижении цели. | |
|
|
|