![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 23
|
Суть проблемы. Есть форма отправки с полями. Но защиты от флуда нет никакой, т.е. сиди и жми сколько хочешь на отправить.
1) Как сделать ограничение на нажатие кнопки. Т.е. не чаще одного раза в минуту допустим. 2) Как запретить прямое обращение к скрипту. На пхп это легко решается сессиями, а вот как защититься на флеше, т.е. сделать ограничения на отправку одного и того же сообщения несколько раз. Сам скрипт отправки реализован на пхп. Но чтобы реализовать сессии, надо чтобы при загрузке формы, открылась сессия, на пхп бы при загрузке было: session_start(); if($_SESSION['uid'] =='') {$_SESSION['uid'] = mt_rand(100000,999999); далее его бы перехватили в скрипте отправки, но вот как запустить сессию на флеше, видимо никак...или как? Последний раз редактировалось dj_pont; 08.10.2009 в 22:02. |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 215
|
Даете клиенту идентификатор. Отправляете на сервер сообщение с идентификатором. Если в течении последней минуты клиент с таким идентификатором что-то отправлял, то игнорируете его запрос.
Второй раз за день пишу одно и то же, читайте форум внимательнее... |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 23
|
Цитата:
и как всё же сделать ограничение по нажатии кнопки, чтобы не тупо просто не отправлялась, а именно шло ограничение, что слишком часто нажимается кнопка? |
|
|||||
|
Modus ponens
|
Поместить клиента в ускоритель частиц - или просто привязать ему руки к стулу. Вы можете например сверять время последней отпавки при нажатии или еще что-то похожее, но это никак не помешает клиенту забить на вашу "умную" кнопку и отпавить запрос вообще на нее не нажимая. Всю логику вам нужно организовывать, очевидно, на PHP, флеш тут абсолютно ни при чем.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 23
|
Цитата:
Я понимаю, что если я хочу чтобы на кнопку нажимали один раз в 60 секунд, то надо отталкиваться от последнего нажатия + 60 секунд, вопрос как это реализовать во флеш?! Я понимаю, что кнопку можно обойти, в пхп я использую для этого сессии, да и саму суть, была нажата кнопка или нет, и без кнопки никуда ничего не уйдёт, только как сделать подобие сессии во флеш совместно с пхп, формы отправки и посылкка переменных то во флеш происходит, а приём этих переменных и проверку уже пхп производит, так как их сдружить на проверку сессии, или что-то похожее?! |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 215
|
Отправление пост запросов во флеше - urlloader. Смотрите туда.
Как вам уже сказали - во флеше надо только отправлять по клику что-то(вешаем на кнопку событие (addeventlistener) и отправляем запрос). Вся логика делается на стороне сервера. Например, создается таблица в бд, в которой хранятся идентификаторы пользователей и даты послежниъ отправленых ими сообщений. Дальше понятно должно быть... |
|
|||||
|
.
|
А флешка использует в качестве транспорта движок браузера. Т.о. Ваша сессия преспокойно отправится "из флеша".
|
|
|||||
|
Регистрация: Mar 2009
Сообщений: 23
|
Цитата:
send.onPress=function():Void { s_and_1_obj.t1=t1.text; s_and_1_obj.t2=t2.text; s_and_1_obj.receiver_mail=receiver_mail.text; s_and_1_obj.subject=subject.text; s_and_1_obj.t3=t3.text; s_and_1_obj.sendAndLoad("help.php", rec_obj, "POST"); info.text="Ваше сообщение отправляется. Подождите..."; }; Цитата:
Последний раз редактировалось dj_pont; 09.10.2009 в 20:42. |
|
|||||
|
Modus ponens
|
При чем тут LoadVara и AS3?
Как вы собираетесь "стартовать сессию" на клиенте? Если вы хотите нажимать на кнопку 1 раз в 60 секунд, это совсем не значит, что пользователь тоже этого хочет. Мало того, для того, чтобы послать запрос который отправляется вашей кнопкой эта ваша кнопка абсолютно не нужна. Поэтому и пытаться предотвратить многократные нажатия на стороне клиента бессмысленно - вам нужно на сервере проверить частоту с которой приходят запросы, и если кто-то посылает запросы чаще, чем нужно - забанить его, или просто игнорировать, зависит от ситуации. Флеш тут вам в этом абсолютно не помощник.
__________________
Hell is the possibility of sanity |
|
||||||
|
Регистрация: Mar 2009
Сообщений: 23
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
в течении 1 минуты выдовалось сообщение о том, что вы слишком часто нажимаете кнопку. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:07. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|