Message changé et rafraîchit selon l'heure

Simflint -  
Smoking bird Messages postés 911 Statut Membre -
Bonjour à tous.

Je veux afficher un message différent sur mon site internet selon l'heure du serveur... Tout ce passe bien, un seul hic : quand quelqu'un qui arrive sur la page juste avant l'heure du changement de message le message ne change pas une fois l'échéance venue!

Je suis débutant en informatique et ce que je vous présente ici, est ce que j'ai réussi à bidouiller jusqu'à date...

<DIV ID=heure></div>
<SCRIPT LANGUAGE=JavaScript>
date = new Date(0,0,0,<?php echo date("H, i, s"); ?>)
heu = date.getHours();
min = date.getMinutes();
sec = date.getSeconds();

function calc() //fonction pour afficher l'heure du serveur
{
sec++;
if (sec < 10)
sec = "0"+Math.round(sec);
else if(sec >= 60)
{
sec = "00";
min++;
}
if (min < 10)
min = "0"+Math.round(min);
else if(min >= 60)
{
min = "00";
heu++;
}
if (heu < 10)
heu = "0"+Math.round(heu);
else if(heu >= 24)
{
heu = "00";
}

texte = heu + ":" + min + ":" + sec;
if (document.getElementById)
{
document.getElementById("heure").innerHTML=texte;
}
}

function action() //fonction d'affichage d'un message selon l'heure du serveur

{
if (heu>=0 && heu<=5)
{
MessageB = '1';
}
if (heu>5 && heu<=12)
{
MessageB = '2';
}
if (heu>12 && heu<=13)
{
MessageB = '3';
}
if (heu>13 && heu<=17)
{
MessageB = '4';
}
if (heu>17 && heu<=19)
{
MessageB = '5';
}
if (heu>19 && heu<60)
{
MessageB = '6';
}
return MessageB;
}
setInterval("calc()", 1000);
</SCRIPT>
<body>
<SCRIPT LANGUAGE="JavaScript">
document.write(action());
</SCRIPT>
</body>


En bref ce que j'ai de besoin c'est de faire en sorte que le message se rafraîchisse au bon moment.

Merci à l'avance

Simflint
A voir également:

5 réponses

Smoking bird Messages postés 911 Statut Membre 58
 
le message ne changera jamais je pense^^ tu as mélangé du javascript et du php, le php peut donner la première heure, mais pas le reste (sauf si tu fais ça en ajax, mais ce n'est pas ton cas).

Le php s'exécute côté serveur, donc à chaque appel de page, le javascript s'execute côté client, donc uniquement à partir du navigateur^^ mais sans ajax il ne fait pas d'appel au serveur. Tu devrais pouvoir trouver des fonctions javascript de dates
0
rescue Messages postés 1047 Statut Contributeur 136
 
Bonsoir,

Je comprends ton PB :
Mais je pense que tu t'en sortira mieux avec une base de donnée.

Requête php dans mysql tu pourras même faire énormément d'interaction et beaucoup plus dynamique.

Ton problème : c'est que tu mélanges du code javascript qui exécute du code coté client (navigateur web)
et du php qui exécute du code coté serveur (Apache)

Conclusion : si l'heure ou la date du PC du client n'est pas à l'heure du serveur ton code ne marchera pas.

Par contre ne compte pas sur moi pour coder pour toi je te donne tout simplement une piste.
Merci de ta compréhension
0
Simflint
 
Smoking bird...

En effet, c'est très simple d'avoir les dates avec le javascript, mais du côté client, soit l'heure et la date de l'ordinateur client. Ce que je cherche à avoir c'est le temps du serveur de là l'utilisation du php.

Je pense encore qu'il doit y avoir un moyen de synchroniser un rafraîchissement des messages avec le temps serveur qui est somme toute afficher sur la page. C'est se moyen qui m'échappe.

Désolé de ne pas avoir été suffisamment clair.

Simflint
0
Simflint
 
Merci pour la piste rescue,

Je vais jeter un oeil du côté des bases de données...

Si quelqu'un d'autre à une idée qui pourrait m'éviter de passer par les bases de données... qu'il ne la censure point,

Sinon,
Merci beaucoup...

Simflint
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Smoking bird Messages postés 911 Statut Membre 58
 
Cherches du côté de ajax

en gros:

tu peux créer une fonction javascript, qui 'dialoguera' avec un script php. La fonction javascript se déclenchera quand tu le définira, et elle fera s'executer le script php, qui renverra les données qui t'intéressent

simple, et efficace, tu es sûr d'avoir l'heure du serveur, mais fais gaffe au déclencheur de la fonction^^
0