Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.10.2009, 21:45
dj_pont вне форума Посмотреть профиль Отправить личное сообщение для dj_pont Найти все сообщения от dj_pont
  № 1  
Ответить с цитированием
dj_pont

Регистрация: Mar 2009
Сообщений: 23
По умолчанию Кнопка "Отправить". Защита от повторного нажатия.

Суть проблемы. Есть форма отправки с полями. Но защиты от флуда нет никакой, т.е. сиди и жми сколько хочешь на отправить.
1) Как сделать ограничение на нажатие кнопки. Т.е. не чаще одного раза в минуту допустим.
2) Как запретить прямое обращение к скрипту. На пхп это легко решается сессиями, а вот как защититься на флеше, т.е. сделать ограничения на отправку одного и того же сообщения несколько раз.
Сам скрипт отправки реализован на пхп. Но чтобы реализовать сессии, надо чтобы при загрузке формы, открылась сессия, на пхп бы при загрузке было:
session_start();
if($_SESSION['uid'] =='') {$_SESSION['uid'] = mt_rand(100000,999999);
далее его бы перехватили в скрипте отправки, но вот как запустить сессию на флеше, видимо никак...или как?


Последний раз редактировалось dj_pont; 08.10.2009 в 22:02.
Старый 08.10.2009, 23:45
incoob вне форума Посмотреть профиль Отправить личное сообщение для incoob Найти все сообщения от incoob
  № 2  
Ответить с цитированием
incoob

Регистрация: Mar 2008
Сообщений: 215
Даете клиенту идентификатор. Отправляете на сервер сообщение с идентификатором. Если в течении последней минуты клиент с таким идентификатором что-то отправлял, то игнорируете его запрос.

Второй раз за день пишу одно и то же, читайте форум внимательнее...

Старый 09.10.2009, 00:56
dj_pont вне форума Посмотреть профиль Отправить личное сообщение для dj_pont Найти все сообщения от dj_pont
  № 3  
Ответить с цитированием
dj_pont

Регистрация: Mar 2009
Сообщений: 23
Цитата:
Сообщение от incoob Посмотреть сообщение
Даете клиенту идентификатор. Отправляете на сервер сообщение с идентификатором. Если в течении последней минуты клиент с таким идентификатором что-то отправлял, то игнорируете его запрос.

Второй раз за день пишу одно и то же, читайте форум внимательнее...
Ну общую суть я и так понимаю, что надо что-то присвоить, а потом сверить. Просто я пхп программист, а не AS, поэтому для меня присвоить идентификатор во флеш ничего не говорит. Как на практике это реализовать, примерный код, я так понимаю не обойдётся без xml или txt...

и как всё же сделать ограничение по нажатии кнопки, чтобы не тупо просто не отправлялась, а именно шло ограничение, что слишком часто нажимается кнопка?

Старый 09.10.2009, 01:03
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Поместить клиента в ускоритель частиц - или просто привязать ему руки к стулу. Вы можете например сверять время последней отпавки при нажатии или еще что-то похожее, но это никак не помешает клиенту забить на вашу "умную" кнопку и отпавить запрос вообще на нее не нажимая. Всю логику вам нужно организовывать, очевидно, на PHP, флеш тут абсолютно ни при чем.
__________________
Hell is the possibility of sanity

Старый 09.10.2009, 06:23
dj_pont вне форума Посмотреть профиль Отправить личное сообщение для dj_pont Найти все сообщения от dj_pont
  № 5  
Ответить с цитированием
dj_pont

Регистрация: Mar 2009
Сообщений: 23
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Поместить клиента в ускоритель частиц - или просто привязать ему руки к стулу. Вы можете например сверять время последней отпавки при нажатии или еще что-то похожее, но это никак не помешает клиенту забить на вашу "умную" кнопку и отпавить запрос вообще на нее не нажимая. Всю логику вам нужно организовывать, очевидно, на PHP, флеш тут абсолютно ни при чем.
И что мне почерпнуть из этого поста???
Я понимаю, что если я хочу чтобы на кнопку нажимали один раз в 60 секунд, то надо отталкиваться от последнего нажатия + 60 секунд, вопрос как это реализовать во флеш?!
Я понимаю, что кнопку можно обойти, в пхп я использую для этого сессии, да и саму суть, была нажата кнопка или нет, и без кнопки никуда ничего не уйдёт, только как сделать подобие сессии во флеш совместно с пхп, формы отправки и посылкка переменных то во флеш происходит, а приём этих переменных и проверку уже пхп производит, так как их сдружить на проверку сессии, или что-то похожее?!

Старый 09.10.2009, 09:03
incoob вне форума Посмотреть профиль Отправить личное сообщение для incoob Найти все сообщения от incoob
  № 6  
Ответить с цитированием
incoob

Регистрация: Mar 2008
Сообщений: 215
Отправление пост запросов во флеше - urlloader. Смотрите туда.

Как вам уже сказали - во флеше надо только отправлять по клику что-то(вешаем на кнопку событие (addeventlistener) и отправляем запрос). Вся логика делается на стороне сервера. Например, создается таблица в бд, в которой хранятся идентификаторы пользователей и даты послежниъ отправленых ими сообщений. Дальше понятно должно быть...

Старый 09.10.2009, 10:40
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от dj_pont Посмотреть сообщение
только как сделать подобие сессии во флеш совместно с пхп, формы отправки и посылкка переменных то во флеш происходит, а приём этих переменных и проверку уже пхп производит, так как их сдружить на проверку сессии, или что-то похожее?!
А флешка использует в качестве транспорта движок браузера. Т.о. Ваша сессия преспокойно отправится "из флеша".
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 09.10.2009, 20:31
dj_pont вне форума Посмотреть профиль Отправить личное сообщение для dj_pont Найти все сообщения от dj_pont
  № 8  
Ответить с цитированием
dj_pont

Регистрация: Mar 2009
Сообщений: 23
Цитата:
Сообщение от incoob Посмотреть сообщение
Отправление пост запросов во флеше - urlloader. Смотрите туда.

Как вам уже сказали - во флеше надо только отправлять по клику что-то(вешаем на кнопку событие (addeventlistener) и отправляем запрос). Вся логика делается на стороне сервера. Например, создается таблица в бд, в которой хранятся идентификаторы пользователей и даты послежниъ отправленых ими сообщений. Дальше понятно должно быть...
Отправляю и принимаю переменные я с помощью "LoadVars();", а нажатие кнопки фиксирую как
Код AS3:
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="Ваше сообщение отправляется. Подождите...";
};
. Я так понял, что чисто на стороне флеша ни одно из антифлуд средств не организовать?!

Цитата:
Сообщение от dimarik Посмотреть сообщение
А флешка использует в качестве транспорта движок браузера. Т.о. Ваша сессия преспокойно отправится "из флеша".
Это я понимаю, но как стартануть сессию на стороне флеш
PHP код:
session_start(); if($_SESSION['uid'] =='') {$_SESSION['uid'] = mt_rand(100000,999999
при открытии формы?


Последний раз редактировалось dj_pont; 09.10.2009 в 20:42.
Старый 09.10.2009, 21:20
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
При чем тут LoadVara и AS3?
Как вы собираетесь "стартовать сессию" на клиенте?
Если вы хотите нажимать на кнопку 1 раз в 60 секунд, это совсем не значит, что пользователь тоже этого хочет. Мало того, для того, чтобы послать запрос который отправляется вашей кнопкой эта ваша кнопка абсолютно не нужна. Поэтому и пытаться предотвратить многократные нажатия на стороне клиента бессмысленно - вам нужно на сервере проверить частоту с которой приходят запросы, и если кто-то посылает запросы чаще, чем нужно - забанить его, или просто игнорировать, зависит от ситуации. Флеш тут вам в этом абсолютно не помощник.
__________________
Hell is the possibility of sanity

Старый 09.10.2009, 21:40
dj_pont вне форума Посмотреть профиль Отправить личное сообщение для dj_pont Найти все сообщения от dj_pont
  № 10  
Ответить с цитированием
dj_pont

Регистрация: Mar 2009
Сообщений: 23
Цитата:
При чем тут LoadVara и AS3?
Я то откуда знаю?

Цитата:
Как вы собираетесь "стартовать сессию" на клиенте?
Смотря что вы называете клиентом?! Если swf файл, который подгружает юзер, то допустим при подгрузке определённой сцены или при проведении мышкой над определённой зоной, а лучше, при установке курсора в одно из полей для заполнения, отсылалась бы переменная, которая стартовала сессию и передавала обратно сгенирированный код, который в дальнейшем при нажатии на кнопку передастся для сверки.

Цитата:
Если вы хотите нажимать на кнопку 1 раз в 60 секунд, это совсем не значит, что пользователь тоже этого хочет.
А его не будут спрашивать, хочет или нет.

Цитата:
Мало того, для того, чтобы послать запрос который отправляется вашей кнопкой эта ваша кнопка абсолютно не нужна.
Поверьте нужна, без кнопки прямое обращение к скрипту ничего не даст.

Цитата:
Поэтому и пытаться предотвратить многократные нажатия на стороне клиента бессмысленно - вам нужно на сервере проверить частоту с которой приходят запросы, и если кто-то посылает запросы чаще, чем нужно - забанить его, или просто игнорировать, зависит от ситуации.
Мне со стороны флеш не нужна проверка частоты отсылки данных. Уберём всё что я писал выше, допусти сделали мощную флешку ввиде одной единственной кнопки и всё, больше абсолютно ничего нет, не надо ничего никуда передавать, в том числе и сторонних php скриптов. Реально ли прикрутить к данной кнопке действие, которое будет подщитывать во сколько было сделано нажатие и при повторном нажатии
в течении 1 минуты выдовалось сообщение о том, что вы слишком часто нажимаете кнопку.

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:07.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.