[php/mysql] compte a rebour
Fermé
neo2099
Messages postés
164
Date d'inscription
vendredi 13 avril 2007
Statut
Membre
Dernière intervention
9 avril 2020
-
14 sept. 2007 à 22:15
Spounky - 11 janv. 2009 à 19:05
Spounky - 11 janv. 2009 à 19:05
A voir également:
- [php/mysql] compte a rebour
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Supprimer compte instagram - Guide
- Créer un compte instagram sur google - Guide
- Gmail connexion autre compte - Guide
25 réponses
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
24 sept. 2007 à 09:04
24 sept. 2007 à 09:04
Bjr
AH bizarre ... Chez moi lorsque je ferme le navigateur et que je relance la page le compteur est bien à zéro (c'est normal !) par contre si je me reconnecte avec le même pseudo alors le compteur reprend sa course en tenant compte du temps écoulé.
Evidemment comme je n'ai mis que 100 secondes il faut fermer puis rouvrir la page puis se reconnecter en moins de 100" sinon la partie est déjà finie ! Tu peux bien sûr augmenter la durée
AH bizarre ... Chez moi lorsque je ferme le navigateur et que je relance la page le compteur est bien à zéro (c'est normal !) par contre si je me reconnecte avec le même pseudo alors le compteur reprend sa course en tenant compte du temps écoulé.
Evidemment comme je n'ai mis que 100 secondes il faut fermer puis rouvrir la page puis se reconnecter en moins de 100" sinon la partie est déjà finie ! Tu peux bien sûr augmenter la durée
neo2099
Messages postés
164
Date d'inscription
vendredi 13 avril 2007
Statut
Membre
Dernière intervention
9 avril 2020
12
14 nov. 2007 à 22:13
14 nov. 2007 à 22:13
Bonsoir,
Sa fait un moment que je suis pas venu (pas trop eu le temps de faire quoi que ce soit mais le 1er script j'ai finalement reussi a le modifier (je c'est je suis lourd a la longue lol) mais j'ai reussi a quelque chose mais maintenant quand j'actualise mon temps est * ainsi que mon niveau
je remet les fichiers.
countdownusine.php
<?php
//session_start();
$now=getdate();
$restant=0;
$last = "stop";
$_duree = isset($_GET["duree"]) ? intval($_GET["duree"]) : 0;
if (isset($_GET["last"])) {$last = $_GET["last"];}
if (!isset($_GET["last"]))
{
if (isset($_SESSION['start_time'])) { $_SESSION['start_time']=0;}
}
if ($last == "stop")
{
if (isset($_SESSION['start_time'])) { $_SESSION['start_time']=0;}
}
else
{
if (isset($_SESSION['start_time']) && $_SESSION['start_time'])
{
$restant= $_duree-(intval($now['hours'])*3600+intval($now['minutes'])*60+intval($now['seconds']))+$_SESSION['start_time'];
}
else
{
$_SESSION['start_time']=intval($now['hours'])*3600+intval($now['minutes'])*60+intval($now['seconds']);
$restant=$_duree;
}
}
?>
<html>
<head>
<title>Game</title>
<style>
body
{
font-size:10pt;
font-family:Arial;
}
div img
{
padding:0px;
margin:0px;
display:inline;
border-width:0px;
}
</style>
<script type="text/javascript">
<!--
function toHMS(duree)
{
var temps = new Array();
var hh = Math.floor(duree/3600);
var mm = Math.floor((duree-hh*3600)/60);
var ss = duree-hh*3600-mm*60;
temps[0]=Math.floor(hh/10);
temps[1]=hh-temps[0]*10;
temps[2]=Math.floor(mm/10);
temps[3]=mm-temps[2]*10;
temps[4]=Math.floor(ss/10);
temps[5]=ss-temps[4]*10;
return temps;
}
var restant=<?php echo $restant; ?>;
function decompte()
{
var seq = toHMS(restant);
for (var i=0; i < 6; i++)
{
document.getElementById("seq_"+i).src="c"+seq[i]+".gif";
}
if (restant)
{
restant--;
window.setTimeout("decompte()",1000);
}
else
{
<?
?>
alert("Batiment finit");
document.getElementById("exec").submit();
}
}
function go()
{
restant=parseInt(document.getElementById("duree").value);
decompte();
}
// -->
</script>
<?php
mysql_connect('localhost','root','');
mysql_select_db('test');
$data = mysql_query('SELECT usine, tpsusine FROM batiment');
while($donnees = mysql_fetch_array($data))
{
$usine1 = $donnees['usine'];
$tpsusine1 = $donnees['tpsusine'];
$usine = $usine1 + 1;
$tpsusine = $tpsusine1 *2;
mysql_query("UPDATE batiment SET usine='$usine', tpsusine='$tpsusine'");
mysql_close();
} ?>
</head>
<body <?php if ($restant) echo "onload=\"decompte()\"";?>>
<div>
<center>
<!--<img id="seq_0" src="c0.gif"><img id="seq_1" src="c0.gif"><img src="colon.gif"><img id="seq_2" src="c0.gif"><img id="seq_3" src="c0.gif"><img src="colon.gif"><img id="seq_4" src="c0.gif"><img id="seq_5" src="c0.gif"> !-->
</center>
</div>
</br>
</br>
</br>
</br>
<?php
if ($last == "stop")
{
include("usine/form_gousine.php");
}
else
{
include("usine/form_stopusine.php");
}
?>
</html>
formgo_usine.php
<?
mysql_connect('localhost','root','');
mysql_select_db('test');
$data = mysql_query('SELECT * FROM batiment Order by usine desc LIMIT 1');
while($donnees = mysql_fetch_array($data))
{
?>
<center><font color="white">
Niveau <? echo $donnees['usine']; ?>
<?
$tpsusine = $donnees['tpsusine'];
$usine = $donnees['usine'];
?>
<form id="exec" name="exec" action="index2.php" method="get">
Durée <? echo $tpsusine * $usine; ?> <input id="duree" name="duree" type="hidden" value="<? echo $tpsusine * $usine ; ?>" size="8" length="8">sec.
<input type="hidden" name="last" id="last" value="go">
<input type="submit" value="Démarrer">
</form>
<?
}
mysql_close();
?>
form_stopusine.php
<img id="seq_0" src="c0.gif"><img id="seq_1" src="c0.gif"><img src="colon.gif"><img id="seq_2" src="c0.gif"><img id="seq_3" src="c0.gif"><img src="colon.gif"><img id="seq_4" src="c0.gif"><img id="seq_5" src="c0.gif">
<form id="exec" name="exec" action="index2.php" method="get">
<input type="hidden" name="last" id="last" value="stop">
<input type="submit" value="Stop">
</form>
Voila si quelqu'un peut m'aider un peu pour eviter que quand je l'arrete ou que je l'actualise les niveau et le temps augmente.
Merci d'avance
Sa fait un moment que je suis pas venu (pas trop eu le temps de faire quoi que ce soit mais le 1er script j'ai finalement reussi a le modifier (je c'est je suis lourd a la longue lol) mais j'ai reussi a quelque chose mais maintenant quand j'actualise mon temps est * ainsi que mon niveau
je remet les fichiers.
countdownusine.php
<?php
//session_start();
$now=getdate();
$restant=0;
$last = "stop";
$_duree = isset($_GET["duree"]) ? intval($_GET["duree"]) : 0;
if (isset($_GET["last"])) {$last = $_GET["last"];}
if (!isset($_GET["last"]))
{
if (isset($_SESSION['start_time'])) { $_SESSION['start_time']=0;}
}
if ($last == "stop")
{
if (isset($_SESSION['start_time'])) { $_SESSION['start_time']=0;}
}
else
{
if (isset($_SESSION['start_time']) && $_SESSION['start_time'])
{
$restant= $_duree-(intval($now['hours'])*3600+intval($now['minutes'])*60+intval($now['seconds']))+$_SESSION['start_time'];
}
else
{
$_SESSION['start_time']=intval($now['hours'])*3600+intval($now['minutes'])*60+intval($now['seconds']);
$restant=$_duree;
}
}
?>
<html>
<head>
<title>Game</title>
<style>
body
{
font-size:10pt;
font-family:Arial;
}
div img
{
padding:0px;
margin:0px;
display:inline;
border-width:0px;
}
</style>
<script type="text/javascript">
<!--
function toHMS(duree)
{
var temps = new Array();
var hh = Math.floor(duree/3600);
var mm = Math.floor((duree-hh*3600)/60);
var ss = duree-hh*3600-mm*60;
temps[0]=Math.floor(hh/10);
temps[1]=hh-temps[0]*10;
temps[2]=Math.floor(mm/10);
temps[3]=mm-temps[2]*10;
temps[4]=Math.floor(ss/10);
temps[5]=ss-temps[4]*10;
return temps;
}
var restant=<?php echo $restant; ?>;
function decompte()
{
var seq = toHMS(restant);
for (var i=0; i < 6; i++)
{
document.getElementById("seq_"+i).src="c"+seq[i]+".gif";
}
if (restant)
{
restant--;
window.setTimeout("decompte()",1000);
}
else
{
<?
?>
alert("Batiment finit");
document.getElementById("exec").submit();
}
}
function go()
{
restant=parseInt(document.getElementById("duree").value);
decompte();
}
// -->
</script>
<?php
mysql_connect('localhost','root','');
mysql_select_db('test');
$data = mysql_query('SELECT usine, tpsusine FROM batiment');
while($donnees = mysql_fetch_array($data))
{
$usine1 = $donnees['usine'];
$tpsusine1 = $donnees['tpsusine'];
$usine = $usine1 + 1;
$tpsusine = $tpsusine1 *2;
mysql_query("UPDATE batiment SET usine='$usine', tpsusine='$tpsusine'");
mysql_close();
} ?>
</head>
<body <?php if ($restant) echo "onload=\"decompte()\"";?>>
<div>
<center>
<!--<img id="seq_0" src="c0.gif"><img id="seq_1" src="c0.gif"><img src="colon.gif"><img id="seq_2" src="c0.gif"><img id="seq_3" src="c0.gif"><img src="colon.gif"><img id="seq_4" src="c0.gif"><img id="seq_5" src="c0.gif"> !-->
</center>
</div>
</br>
</br>
</br>
</br>
<?php
if ($last == "stop")
{
include("usine/form_gousine.php");
}
else
{
include("usine/form_stopusine.php");
}
?>
</html>
formgo_usine.php
<?
mysql_connect('localhost','root','');
mysql_select_db('test');
$data = mysql_query('SELECT * FROM batiment Order by usine desc LIMIT 1');
while($donnees = mysql_fetch_array($data))
{
?>
<center><font color="white">
Niveau <? echo $donnees['usine']; ?>
<?
$tpsusine = $donnees['tpsusine'];
$usine = $donnees['usine'];
?>
<form id="exec" name="exec" action="index2.php" method="get">
Durée <? echo $tpsusine * $usine; ?> <input id="duree" name="duree" type="hidden" value="<? echo $tpsusine * $usine ; ?>" size="8" length="8">sec.
<input type="hidden" name="last" id="last" value="go">
<input type="submit" value="Démarrer">
</form>
<?
}
mysql_close();
?>
form_stopusine.php
<img id="seq_0" src="c0.gif"><img id="seq_1" src="c0.gif"><img src="colon.gif"><img id="seq_2" src="c0.gif"><img id="seq_3" src="c0.gif"><img src="colon.gif"><img id="seq_4" src="c0.gif"><img id="seq_5" src="c0.gif">
<form id="exec" name="exec" action="index2.php" method="get">
<input type="hidden" name="last" id="last" value="stop">
<input type="submit" value="Stop">
</form>
Voila si quelqu'un peut m'aider un peu pour eviter que quand je l'arrete ou que je l'actualise les niveau et le temps augmente.
Merci d'avance
neo2099
Messages postés
164
Date d'inscription
vendredi 13 avril 2007
Statut
Membre
Dernière intervention
9 avril 2020
12
15 nov. 2007 à 00:19
15 nov. 2007 à 00:19
oups j'ai reecrit l'ancien, je voulais dire que le cpt marcher nickel et que je suis en train de le modifier sa fait un bail que j'était pas venu ici la prochaine fois que je posterai je lirai tout avant
Je suis aussi en train de développer un MMORPG textuel avec ce type de fonctions, il est vrai que ça a l'air sympa à faire...
Si tu as besoin d'infos laches des koms sur mon forum, j'essaierai de te filer un coup de main .....et la meilleure technique à adopter....je viens de lancer le forum donc personne mais dès qu'il sera référencé ça ira mieux....
voilà l'adresse:
https://debbog2007.kanak.fr/
Si tu as besoin d'infos laches des koms sur mon forum, j'essaierai de te filer un coup de main .....et la meilleure technique à adopter....je viens de lancer le forum donc personne mais dès qu'il sera référencé ça ira mieux....
voilà l'adresse:
https://debbog2007.kanak.fr/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je sais que ce post est ancien mais bon, voila la solution pour creer un compte à rebourds infini en php:
creer une base (ici ma base) avec un champ heuredeplace, et heurerefer mettre les timestamp correspondant(heurerefer etant plus petit). inserer ce script dans toutes les pages.
$chrono="ma base";
$duree=60*60; // durée du compte à rebours (mn X 60 sec)
$query = 'SELECT * FROM '.$chrono;
$result = mysql_query($query);
while ($val = mysql_fetch_array($result)) {
// Variables
$heure_serveur = time(); // heure actuelle
$heuredeplace=$val['heuredeplace']; // ton heure de deplacement (style time dans ta bdd)
$heure_refer=$val['heurerefer']; // ton heure de reference (style time dans ta bdd)
}
// Calcul nouveaux cours
if (time()>=($heuredeplace)){
// Calcul du prochain cours ou redirection pour action, dans ce cas mettre ce qui est entre parentheses dans ta page d'action.
$ope=abs(time()-$heure_refer);
$entier=floor($ope/$duree);
$heure_refer=$heure_refer+($entier*$duree);
$heuredeplace = $heure_refer + $duree;
// Mise à jour du compte à rebourds
$sql = 'UPDATE "'.$chrono.'" SET heureserveur= "'.$heure_serveur.'", heuredeplace = "'.$heuredeplace.'" where id="1" LIMIT 1';
$req = mysql_query($sql) or die ('Erreur SQL !'.$sql.''.mysql_error());
}
// Horloge
$timestampb = abs($heuredeplace - time());
$diff_heure = floor($timestampb / 3600); //Calcul des heures
$timestampb = $timestampb - ($diff_heure * 3600);
$diff_min = $timestampb / 60; //Calcul des minutes
$diff_min = floor(abs($diff_min));
$secb=($heuredeplace - time())/60;// Calcul des secondes
$diff_sec = floor(abs($secb));
$sec3=(($heuredeplace - time())-($diff_sec*60)); // pour afficher l'horloge echo $diff_heure."h".$diff_min."mn".$sec3."sec";
creer une base (ici ma base) avec un champ heuredeplace, et heurerefer mettre les timestamp correspondant(heurerefer etant plus petit). inserer ce script dans toutes les pages.
$chrono="ma base";
$duree=60*60; // durée du compte à rebours (mn X 60 sec)
$query = 'SELECT * FROM '.$chrono;
$result = mysql_query($query);
while ($val = mysql_fetch_array($result)) {
// Variables
$heure_serveur = time(); // heure actuelle
$heuredeplace=$val['heuredeplace']; // ton heure de deplacement (style time dans ta bdd)
$heure_refer=$val['heurerefer']; // ton heure de reference (style time dans ta bdd)
}
// Calcul nouveaux cours
if (time()>=($heuredeplace)){
// Calcul du prochain cours ou redirection pour action, dans ce cas mettre ce qui est entre parentheses dans ta page d'action.
$ope=abs(time()-$heure_refer);
$entier=floor($ope/$duree);
$heure_refer=$heure_refer+($entier*$duree);
$heuredeplace = $heure_refer + $duree;
// Mise à jour du compte à rebourds
$sql = 'UPDATE "'.$chrono.'" SET heureserveur= "'.$heure_serveur.'", heuredeplace = "'.$heuredeplace.'" where id="1" LIMIT 1';
$req = mysql_query($sql) or die ('Erreur SQL !'.$sql.''.mysql_error());
}
// Horloge
$timestampb = abs($heuredeplace - time());
$diff_heure = floor($timestampb / 3600); //Calcul des heures
$timestampb = $timestampb - ($diff_heure * 3600);
$diff_min = $timestampb / 60; //Calcul des minutes
$diff_min = floor(abs($diff_min));
$secb=($heuredeplace - time())/60;// Calcul des secondes
$diff_sec = floor(abs($secb));
$sec3=(($heuredeplace - time())-($diff_sec*60)); // pour afficher l'horloge echo $diff_heure."h".$diff_min."mn".$sec3."sec";