Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты по данной тематике

Асмик Гаряка
Статус: Советник
Рейтинг: 11002
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Советник
Рейтинг: 3995
∙ повысить рейтинг »
vladisslav
Статус: Практикант
Рейтинг: 1353
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / PHP

Номер выпуска:1260
Дата выхода:27.03.2013, 23:30
Администратор рассылки:Устинов С.Е. (Профессионал)
Подписчиков / экспертов:84 / 38
Вопросов / ответов:3 / 7

Консультация # 50256: Уважаемые эксперты! Имеется код скрипта для голосования (в Приложении). Небходимо защитить этот скрипт от возможности повторного голосования посредством IP-пользователя. Не могли бы вы мне сказать, как это сделать? Предложите ваш вариант полного скрипта или модифицируйте этот (желательно). Мне бы также хотелось знать, насколько эт...


Консультация # 41190: Здравствуйте уважаемые эксперты. Есть 2 таблицы mysql: 1) ИД | Имя | ... 2) ИД | Текст | ... Необходимо произвести поиск по полю "текст" в таблице №2, а инфу по найденным строкам надо вывести из таблицы №1. Не получается придумать алгоритм. Помогите :)...
Консультация # 116462: Подскажите пожалуйста, что такое ресурсные переменные?...

Консультация # 50256:

Уважаемые эксперты!

Имеется код скрипта для голосования (в Приложении). Небходимо защитить этот скрипт от возможности повторного голосования посредством IP-пользователя. Не могли бы вы мне сказать, как это сделать? Предложите ваш вариант полного скрипта или модифицируйте этот (желательно).

Мне бы также хотелось знать, насколько этот скрипт идеален и, самое главное, безопасен.

Надеюсь на Вашу помощь.
Спасибо!

Дата отправки: 26.07.2006, 16:13
Вопрос задал: Демьянчук Виталий
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Physicist:

Здравствуйте, Демьянчук Виталий!

Сохраняй IP проголосовавших, например в voting/ip.txt. И при кадом голосовании проверяй, есть ли IP в списке проголосовавших, если есть - выводи "Вы уже проголосовали!".
Примерно так:

Приложение:

Консультировал: Physicist
Дата отправки: 26.07.2006, 16:33
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Марк Крейн:

Здравствуйте, Демьянчук Виталий!
Сразу скажу следующее: посредством проверки IP адреса пользователя Вы этот скрипт от повторного голосования никак не защитите. Дело в том что у большинства пользователей коммутируемый доступ в интернет, а следовательно у них динамические IP.
Как вариант могу предложить реализацию системы голосований, описание которой прилагаю. (см. ниже)
Пользователь регистрируется (логин и пароль), и голосует. Голосований может быть несколько, все они разбиты по категориям. Пользователю запрещено менять логин. Таким образом совершенно исключена возможность повторного голоса одного и того же пользователя (при ответе просто проверять, голосовал ли этот пользователь или нет).
Если такой вариант не устраивает, предлагаю альтернативу с cookies. Т.е. запоминать все данные у клиента. Но здесь тоже есть проблема, а именно: если пользователь отключит cookies, Ваш скрипт будет работать некорректно.

Теперь по поводу самого скрипта. Рекомендую использовать функцию flock при записи в файл. Описание функции Вы можете прочитать здесь.
Ещё одно замечание по поводу идеальности скрипта. Вы выводите html-данные посредством echo. Дело в том что echo относится к php, как следствие тратятся лишние ресурсы. Это не принципиально (у каждого свой стиль программирования), но, всё-таки, лучше выводить html-данные (формы, таблицы и т.д) не прибегая к php.
С учётом всего сказанного привожу изменённый код (см. приложение).

Надеюсь что помог Вам своим ответом.

Удачи!
С уважением,

Марк.

Приложение: