LINUX.ORG.RU

mod_perl, security


0

0

Подскажите плиз алгоритм как грамотно сделать следующую вещь на mod_perl
Пользователь сабмитит форму, после это видит обратный счет 5 4 3 2 2 1,
то есть задержка на 5 секунд, и толька после этого данные должны попасть в базу данных.
Остальные требования:
1. Если пользователь нажал кнопку сабмит, данные обязательно должны
попасть в базу, даже если в следующее мгновение он закроет броузер.

2. Он ни в коем случае не должен иметь возможность просабмитеть данные без этой 5 секундой задержки.


а в чем вопрос-то? на перле делаешь задержку перед добавлением в базу, а юзеру выводишь хтмл с скриптом, и рефрешем через 5 сек

geek ★★★
()
Ответ на: комментарий от geek

То есть форкатся нада, основной процес форкается, выводит html со скриптом и все, форкнутый процес спить 5 сек и добваляет в базу.
Мы такое предложили, получили ответ что вроде как бы не плохое решение, толька не хорошо держать процес на 5 секунд, так как их кол-во ограниченое под апачем.
Вот я и думаю, когда конфигуриш апаче, и говориш MaxKeepAliveRequests 50, неужели в эти 50 входят и те процессы, которые были форкнуты обработчиком http запроса.

tukan
() автор топика
Ответ на: комментарий от tukan

форкацца не надо

1.выводим хтмл ( 2.ждем 5 сек 3.добавляем в базу 4.екзит

или

1.выводим хтмл 2.добавляем в базу во временную таблицу 3.екзит

следующе обращение к базе должно перенести запись из временной таблицы в основную...коряво, но в голову ничего не приходит....

чем вообще вызвана необходимость задержки в 5 секунд?

geek ★★★
()
Ответ на: комментарий от tukan

и ещё мысль:

условие "он ни в коем случае не должен просабмитить данные без 5-сек задержки" имеет смысл только в одном случае - если пользователь не дожидается открытия следующей страницы, данные в базу НЕ добавляются. Иначе смыслу не вижу =)

geek ★★★
()
Ответ на: комментарий от geek

Скорее всего
выводим хтмл 2.добавляем в базу во временную таблицу 3.екзит
И думать какой нибуть демон, который потом их переносит в основную таблицу

Первый вариант слишком долго держит обработчик, а он должен освободится как можно скорее.

По поводу 5 сек, ничего другого не могу сказать, кроме того, что тз такое.

tukan
() автор топика

а может на JavaSctipt просто попросить не дать нажать сабмит ранее чем через 5 сек?

anonymous
()
Ответ на: комментарий от anonymous

>>а может на JavaSctipt просто попросить не дать нажать сабмит ранее чем >>через 5 сек?

На это нельзя надеятся, уйма способов отключить JavaScript.
Проверка 5 cекунд должна быть сделана на клиенте

tukan
() автор топика
Ответ на: комментарий от tukan

Сорри, сморозил,
конечно же
Проверка 5 cекунд должна быть сделана на СЕРВЕРЕ

tukan
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.