Az alábbi kódrészletet 3 különböző honlapon használom. A lényege, hogy form elküldése után, a felvevő program létrehoz egy 20 sec élettartamú, flood nevű sütit, majd header-rel újraindítja a formot tartalmazó programot.
Ha van süti, akkor a <body onload elindítja a visszaszámláló függvényt, egyúttal a form inaktív lesz és az addig 'Mehet' feliratú gombon megy a visszaszámlálás, 20-tól, nulláig. Ha végzett, akkor van egy frissítés és mivel a süti már nem él, a form újra aktív lesz.
Egy honlapon ez rendben működik, de két másikon, ahová egy az egyben lettek átmásolva, a form ugyan inaktív lesz, ami 20 sec után megszűnik, ahogy kell, de a visszaszámlálás nem jelenik meg az input ablakban:
<script language='javascript'>
counter = 20;
var ido
function minus()
{
document.getElementById('szkiir').value = counter+" sec";
if( counter > 0) { counter--; } else { return; }
ido=setTimeout("minus()",1000);
}
</script>
if ( isset ( $_COOKIE['flood'])) {
echo "<body onload='javascript: minus()'>";
$disabled = "disabled style='background: #EBEBEB'";
}
else { echo "<body>"; $disabled = ""; }
if ( !isset ( $_COOKIE['flood'])) {
echo "<input style='font: 11px arial; color: green;' type='submit' name='ok' VALUE='Mehet' $disabled />
</form>";
}
else
{
echo "<input id='szkiir' style='font: 11px arial; color: navy; width: 40px' type='button' />"; // visszaszámlálás kiiratása
}
Már 4 napja evvel birkózok. A legtöbb, amit sikerült elérni, hogy ...innerHTML-el egy div-ben sikerült a visszaszámlálást megjeleníteni, de az input ablakban azért sem írja ki.
teljes kód letöltés