Merci de vos réponses
J'ai mis en place cette solution
Mais on se confronte a un autre problème : Le visiteur peut désactiver le javascript et ainsi bloquer le compteur.
voici le code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| <?php session_start();
function increment_time($now)
{
$_SESSION['yet']=$now;
}
require_once('./xajax_core/xajax.inc.php');
$xajax = new xajax(); //On initialise l'objet xajax
$xajax->register(XAJAX_FUNCTION, 'increment_time');
$xajax->processRequest();
$xajax->printJavascript();
?><head>
<script type="text/javascript">
<?php if(isset($_SESSION['yet'])){?>
var temps = <?php echo $_SESSION['yet'];?>;
<?php }else{?>
var temps = 50;
<?php }?>
var tps = temps;
var x;
function Init()
{
window.document.getElementById('compteur').value=tps;
x = window.setInterval('Decompte()', 1000);
}
function Decompte()
{
tps = tps - 1;
window.document.getElementById('compteur').value = tps;
xajax_increment_time(tps);
if(tps == 0)
{
window.document.getElementById('form').submit();
}
}
window.onload = Init;
</script>
</head>
<form action=test.php name="form" id="form" method=post>
<input type="text" name="compteur" id="compteur" size="2" readonly="readonly">
<input type="text" name="rep" id="rep" size="5">
<INPUT TYPE=submit NAME=Envoyer VALUE="Envoyer">
</form> |
J'ai pensé à mettre un
header("Refresh:5 ;url=no_javascript.php");
à la fin de ma fonction increment_time mais l'ajax ne l'interprète pas.
Partager