Jesli chodzi o rozwiazanie po stronie JS to w zeszlym tygodniu zrobilem sobie funkcyjke, ktora wystarczy wywolac na stronie i sama przelatuje przez wszystkie formularze i powoduje, ze wcisniecie submita czyni go nieaktywnym:
Kod
function disableSubmits() {
for (var i = 0; i < document.forms.length; i++) {
var frm = document.forms[i];
for (var i = 0; i < frm.elements.length; i++) {
if (frm.elements[i].type == "submit") {
frm.elements[i].onclick = function() {
this.disabled = true;
// przycisk deaktywowany nie przesyla POST'em swojej nazwy, wiec wypadalo by ja dodac
var sb = document.createElement('input');
sb.type = 'hidden';
sb.name = this.name;
sb.value= 1;
this.form.appendChild(sb);
this.form.submit();
}
}
}
}
}
Nie wymaga to praktycznie zadnych zmian na stronie. Dolaczac tylko ta funkcje i wywolujesz ja w
onload albo na koncu strony.
Jednak dodatkowo polecam zabezpieczenie po stronie serwera, bo nie kazdy ma JS, pozatym zdarzaja sie zlosliwi

Najprosciej (chyba) zrobic to tak, ze w sesji zapisujesz czas ostatniego wywolania POST'a, ale wczesniej porownujesz wczesniej zapisany czas z aktualnym.. jesli nie minelo wiecej niz np. 5 sekund to robisz exit.