Без описания |
Поиск в теме | Версия для печати |
TvoyWeb |
Отправлено: 28 Декабря, 2004 - 04:18:28
|
Главный здесь
Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003
Откуда: Tashkent Uz
Карма 52
|
Я даже не знаю что тебе сказать.
В прошлый раз, в вопросе о сессиях, ты высказался, что знаком с работой сессий.
Но ИМХО это не совсем так.
Одними сессиями, то что ты хочешь сделать, не добиться.
Для решения такой задачи, необходимо определиться с критериями уникальности, того кто послал данную форму.
Это самое главное. Вообще нет способов на 100% идентифицирующих пользователя, кроме прямой авторизации.
1. Определения IP
2. Определение браузера
3. Определение ОС на компе, ее версии, локали.
4. Определение разрешения монитора (используя яваскрипт и передав эту инфу php скрипту)
5. Можно также определять глубину цвета монитора.
6. Определение всего что только можно на компе пользователя.
Чем больше идентификационных данных тем выше вероятность уникальности.
Предположим что решили идентифицировать юзера по первым 5 пунктам. То есть при совпадении всех этих параметров, будем считать что юзер уже кликнул по кнопке.
НО! IP можно сменить! Ок. Отбрасываем первый пукнт. И опять, НО! Например у меня пять браузеров стоят на компе. А значит я смогу безпрепятственно кликать по кнопке.
А это не удовлетворяет нашему условию "один юзер - один клик".
Вообщем это довльная сложная задача.
Пока нет такого параметра по кторому можно было бы точно определить уникальность пользователя.
Я где то читал, что были попытки идентифицировать по ID конечной машины, но там что то было довольно сложно и не нашло широкого применения.
Далее нужно определиться где хранить эту информацию. Есть много способов хранения:
1. Можно записывать данные в сессию. НО! Закрыл юзер браузер и сессия закончилась, а значит утерены все необходимые данные.
2. Можно записывать в куки. НО! Юзер может вообще не принимать куков, либо куки у него очищаются при выходе, либо он сам принудительно очистил куки.
3. Можно записывать в базу данных (без разницы в какую4 файлы или, например MySQL). Этот вариант, в смысле сохранности данных, наиболее предпочтителен. Юзер уже нее сможет повлиять на эти данные.
Итог. Нет механизма 100% идентификации. Для каждой конкретной задачи, нужно чем то поступиться.
Например для простого голосования вполне можно обойтись записью в куки и потом проверять эту запись.
А собственно тебе это для каких целей . А то я здесь расписался....
И что конкретно у тебя не получается с сессиями? |
|
|
Bolat |
Отправлено: 28 Декабря, 2004 - 04:42:56
|
Member
Покинул форум
Сообщений всего: 130
Дата рег-ции: Нояб. 2004
Откуда: Казахстан, Караганда
Карма 0
|
Задача банальна:
Не позволить одному и тому же челу проголосовать дважды.
Цитата:Итог. Нет механизма 100% идентификации.
Понятно. Тогда как посоветуеш оптимальнее иден-ть чела?
Как это конкретно сделать?
Цитата:Можно записывать в куки. НО! Юзер может вообще не принимать куков, либо куки у него очищаются при выходе, либо он сам принудительно очистил куки.
Придется наверное всетаки выбрать куки. Как конкретно это сделать?
|
|
|
TvoyWeb |
Отправлено: 28 Декабря, 2004 - 08:37:30
|
Главный здесь
Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003
Откуда: Tashkent Uz
Карма 52
|
Bolat пишет:Не позволить одному и тому же челу проголосовать дважды.
Откровенно говоря, знал бы это раньше, не расписывал бы. А просто послал бы в поиск. На форуме уже есть тема об этом.
Ну раз уж написал то ладно. Вопрос такой. Ты не хочешь чтобы данный юзер вообще не голосовал больше одного раза?
Если да, то клади куку с большим временем жизни. И каждый раз проверяй ее.
На пхп это делается функцией setcookie() .
lunux
Здесь на форуме, мы рады каждому новому пользователю. Но здесь, как и на других конференциях есть свои правила. Старайся соблюдать их.
Это к тому, что ни один твой пост не был в тему. Вот и здесь ты высказал все то что я написал выше.
Я надеюсь, на то, что ты воспримешь это не как обиду, а как конструктивную критику, и на понимание.
И еще раз, добро пожаловать на форум.
P.S. Этот оффтоп не обсуждается. Есть вопросы по этому поводу? создай тему в соответсвующем разделе.
|
|
|
Bolat |
Отправлено: 28 Февраля, 2005 - 05:23:55
|
Member
Покинул форум
Сообщений всего: 130
Дата рег-ции: Нояб. 2004
Откуда: Казахстан, Караганда
Карма 0
|
TvoyWeb
Цитата:Ты мог не создавать вторую таблицу, потому как файл сессии уже есть на сервере и туда можно записывать всю служебную инфу.
Поподробнее моно про этот файл? Он где хранится? Отдельно от базы?
Цитата:ИМХО проще использовать готовые сессии на сервере.
Плиз по подробнее моно об этом тоже.
|
|
|
Bolat |
Отправлено: 28 Февраля, 2005 - 06:53:05
|
Member
Покинул форум
Сообщений всего: 130
Дата рег-ции: Нояб. 2004
Откуда: Казахстан, Караганда
Карма 0
|
TvoyWeb
Цитата:У тебя есть локальный сервер на компе?
Конечно есть.
Цитата:А подробнее не получится. Слишком много писать.
Мне непонимается НАЗНАЧЕНИЕ идентификатора. То есть для чего он?
Чтобы не перехватили параметры ходящие по урлам?
Например если кто то перехватит этот иден-ор чо с ним моно сделать?
Цитата:Для начала почитай http://ru.php.net/session
Читаю тоже щас ... |
|
|
|
Поиск в теме | Версия для печати |
Страниц (3): [1] 2 3 » |
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0, скрытых: 0) |
« PHP/Perl » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
|
|
|