##############################################################
## MOD Title: Double Post Protection
## MOD Authors: Xpert < xpert@phpbbguru.net > http://www.phpbbguru.net
## MOD Description: Protects your forum against double-posting of messages,
## when user clicks submit twice confirm window is shown.
## MOD Version: 1.0.0
##
## Installation Level: Easy
## Installation Time: 5 Minutes
## Files To Edit (3): posting.php
## language/lang_english/lang_main.php
## templates/subSilver/posting_body.tpl
##############################################################
## For Security Purposes, Please Check: http://www.phpbbguru.net/mods/ for the
## latest version of this MOD.
##############################################################
## Author Notes:
##
## Use '\n' (backslash + n) for new line at $lang['Message_already_sent']
##
##############################################################
## MOD History:
##
## 2004-05-10 - Version 1.0.0
## - Initial Release
##
##############################################################
## Before Adding This MOD To Your Forum, You Should Back Up All Files Related To This MOD
##############################################################
#
#-----[ OPEN ]------------------------------------------
#
posting.php
#
#-----[ FIND ]------------------------------------------
#
'L_EMPTY_MESSAGE' => $lang['Empty_message'],
#
#-----[ AFTER, ADD ]------------------------------------------
#
'L_MESSAGE_ALREADY_SENT' => $lang['Message_already_sent'],
#
#-----[ OPEN ]------------------------------------------
#
language/lang_english/lang_main.php
#
#-----[ FIND ]------------------------------------------
#
//
// That's all, Folks!
#
#-----[ BEFORE, ADD ]------------------------------------------
#
// Double Post Protection
$lang['Message_already_sent'] = 'This message was already sent.\nDo you want to resent it now?';
#
#-----[ OPEN ]------------------------------------------
#
templates/subSilver/posting_body.tpl
#
#-----[ FIND ]------------------------------------------
#
//formObj.preview.disabled = true;
//formObj.submit.disabled = true;
return true;
#
#-----[ REPLACE WITH ]------------------------------------------
#
//formObj.preview.disabled = true;
//formObj.submit.disabled = true;
if (window.submitted)
{
return confirm('{L_MESSAGE_ALREADY_SENT}');
}
else
{
window.submitted = true;
return true;
}
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Написал вот защиту от двойных и более сабмитов. К сожалению, проверить код в боевых условиях не удается - интернет не тормозит. Как только будет ясно, что код работоспособен, выйдет мод, а также версия Quick Reply с интеграцией этого мода. Ждем результатов ваших тестов.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Jovani
Хм, а какой браузер? Я протестировал под 6-м explorer и под Оперой 7.23 и не смог воспроизвести твою ситуацию:
Но если сразу после появления сообщения 'This message was...., еще раз нажать "Отправить", то получается двойной пост.
Т.е. у тебя появился box с запросом, хочешь ли ты переправить пост еще раз и ты нажимаешь кнопку "Отправить" вместо того, чтобы дать ответ кнопками ОК и Отмена?
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
у тебя появился box с запросом, хочешь ли ты переправить пост еще раз и ты нажимаешь кнопку "Отправить" вместо того, чтобы дать ответ кнопками ОК и Отмена?
Я нажимаю "Отмена". и сразу после этого, еще раз(или несколько), "Отправить" ...
Сколько раз я успел нажать "Отправить", столько и будет сообщений ...
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений
Jovani
Отключить-то можно, думаешь возможность повторной отсылки сообщения не нужна? Про защиту от флуда в общем-то тоже странно, хотя наверное пост все-таки успевает по времени проскочить - вот и появляются дубли.
Эксперт - это человек, который избегает мелких ошибок на пути к грандиозному провалу.
Любая более-менее сложная задача имеет несколько простых, изящных, лёгких для понимания неправильных решений