Probleme compte a rebour

Signaler
Messages postés
8
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
17 mars 2006
-
Messages postés
8
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
17 mars 2006
-
Bonjour a tous, je suis debutant en php et j'essaye tant bien que mal de developper quelques petits trucs mais la j'ai un probleme....

voila il y a quelques temps j'ai recuperer un code (merci pour son auteur)en java qui me permettait de lancer un compte a rebour dynamique avec des images pour les chiffres en bref ca marche genial mais voila pour l'heure actuelle il fait un maintenant.gettime() cad qu'il va chercher l'heure du pc ou s'execute le java, etant donner que tous les pc n'ont pas forcement la meme heure j'aimerai que ce soir plutot l'heure du serveur qui soit choisi donc j'ai remplacer le maintenant.gettime() par un code php du style

ca marche j'ai bien la difference qui s'affiche mais je n'ai plus le rafraichissement toutes les secondes je ne comprends pas puisque a l'ouverture de la page je demande l'heure actuelle du serveur et celui ci ne devrait plus intervenir dans le reste du code....

voila si vous avez une idee si vous voulez le code en entier.....demandez moi

merci par avance

6 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

je crois qu'il va nous falloir le code en effet
Messages postés
8
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
17 mars 2006

voila le code que j'utilise....

<script language="JavaScript">

function Decompteur()
{

Maintenant = new Date;

Future = new Date(2006, 02-1, 17,18,58,00);

Result = Math.floor((Future.getTime()/1000)-(Maintenant.getTime()/1000));
ce que j'aimerai changer

Result=Math.floor((Future.getTime()/1000)-( ))

DifHeure = Math.floor((Result/3600));

/*if(DifHeure < 10)
{
DifHeure = "0" + DifHeure ;
}*/

Result = Result - (DifHeure*3600);

DifMinute = Math.floor((Result/60));

if(DifMinute < 10)
{
DifMinute = "0" + DifMinute ;
}

Result = Result - (DifMinute*60);

DifSeconde = Math.floor(Result);

if (DifSeconde < 10)
{
DifSeconde = "0"+ DifSeconde ;
}

if (Result < 0 )
{
Difsec = "0"
}

Difsec = "" + DifHeure + DifMinute + DifSeconde


return
}

Decompteur();

i0 = new Image;
i1 = new Image;
i2 = new Image;
i3 = new Image;
i4 = new Image;
i5 = new Image;
i6 = new Image;
i7 = new Image;
i8 = new Image;
i9 = new Image;
imgSrc = new Array;
imgSrc[0] = 'images/h0.gif';
imgSrc[1] = 'images/h1.gif';
imgSrc[2] = 'images/h2.gif';
imgSrc[3] = 'images/h3.gif';
imgSrc[4] = 'images/h4.gif';
imgSrc[5] = 'images/h5.gif';
imgSrc[6] = 'images/h6.gif';
imgSrc[7] = 'images/h7.gif';
imgSrc[8] = 'images/h8.gif';
imgSrc[9] = 'images/h9.gif';
i0.src = imgSrc[0];
i1.src = imgSrc[1];
i2.src = imgSrc[2];
i3.src = imgSrc[3];
i4.src = imgSrc[4];
i5.src = imgSrc[5];
i6.src = imgSrc[6];
i7.src = imgSrc[7];
i8.src = imgSrc[8];
i9.src = imgSrc[9];
/*}*/
function Rebour()
{

{
Decompteur()
char1 = Difsec.charAt(0);
document.heure1.src = imgSrc[char1];
char2 = Difsec.charAt(1);
document.heure2.src = imgSrc[char2];
char3 = Difsec.charAt(2);
document.heure3.src = imgSrc[char3];
char4 = Difsec.charAt(3);
document.heure4.src = imgSrc[char4];
char5 = Difsec.charAt(4);
document.heure5.src = imgSrc[char5];
char6 = Difsec.charAt(5);
}
temporebour = setTimeout("Rebour()", 1000)
}
window.onload=Rebour;
</script>

entre les balises body

<script language="javascript">
{
document.write('')
}
</script>
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Ah voui...
PHP n'est exécuté qu'une fois. Parce que tu n'as pas de retour vers le serveur.
C'est le setTimeOut () qui fait le "raffraichissement". Mais en réalité, ce n'est pas un raffraichissement, c'est juste que le code est rappelé toutes les x secondes. Ok?
ON reste sur le client.
Or, php est exécuté côté SERVEUR.
Donc, en gros :
ton utilisateur demande ta page : son clmient web dit au serveur :toc toc, je veux voire cette page x.php.
Le serveur regarde la page x.php, et l'analyse. Il y a du php, en l'occurence, PHP lui demande l'heure. Le serveur regarde sa montre et lui donne l'heure :-)
PHP génère le html de la page x.php.
Il en résulte que tu as ceci par exemple :
Result=Math.floor((Future.getTime()/1000)-(22h54))

Ok?
Cette page est renvoyé au client web.
LUi la lit, interprête le html et le javascript.
Il affiche donc l'heure.
En interprétant le javascript, il voit que la fonction affichant l'heure doit être rappelée toutes les x secondes. Il la rappelle donc...mais dans cette fonction, il y a tjrs cette ligne : Result=Math.floor((Future.getTime()/1000)-(22h54))

Et pas autre chose! Parce que PHP a DEJA été exécuté...et ne le sera pas à nouveau, puisqu'il n'y en a plus dans la page en question! Il n'y a que le html, le javascript, qui ont été ou non générés par PHP. A moins que l'on revienne côté serveur. Et ça, ça implique un raffraichissement de ta page réel, un une requête HTTP quoi (POST, GET...).
Messages postés
8
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
17 mars 2006

Ok je te remercie pour tes explications je comprends un peu mieux ce qui ce passe, en fait je voulais que mon site actualise une fenetre a une heure donnée donc le java c'etait parfait mais je voulais pour ca disons une heure universelle qui serait independante de l'heure de chacun est il possible de pouvoir obtenir une heure universelle qui serait la meme pour tout le monde ?? y a t'il une solution a mon probleme LOL ??
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Les requêtes XMLHTTP (Ajax)...mais bon, pour simplement afficher une heure...ce n'est sûrement pas une bonne idée. Tu vas balancer à ton serveur web des requêtes GET ou POST toutes les secondes...il va peut-être pas apprécier (et ton hébergeur ne va, lui, SUREMENT PAS apprécier...).
Ceci dit tu peux jeter un oeil sur cette technique.
Il y a pas mal de tutos sur le web, et pas mal de sources sur ce site qui en tirent parti.
Messages postés
8
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
17 mars 2006

Je te remercie pour tes explications et pour le temps que tu as bien voulu m'accorder, il ne me reste plus qu'a tout faire en java mais bon je vais essayer de bidouiller le truc genre d emettre l'heure dans une variable et ensuite la decrementer a chaque timeout on verra ce que ca donne... en tout cas merci pour tout....