Intégrer une redirection à la fin d'un compte à rebours...

Résolu/Fermé
neophyte88 Messages postés 4 Date d'inscription mercredi 3 décembre 2014 Statut Membre Dernière intervention 4 décembre 2014 - Modifié par jordane45 le 4/12/2014 à 03:04
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 4 déc. 2014 à 18:47
Bonjour,
Je suis en train de mettre un site en place, mais je n'y connais rien... Je me débrouille en essayant de trouver ici ou là quelques bouts de codes à intégrer. Je voudrais rediriger une page à la fin d'un compte à rebours, mais je cherche désespérément quelque chose qui fonctionne : j'arrive à afficher le compte à rebours, j'arrive à rediriger une page, mais pas à la rediriger à la fin du compte à rebours... quelqu'un pourrait il m'aider ?
D'avance un grand merci.
Voici l'adresse de la page :
http://www.hymnevolution.fr/verrnissage.htm

Voilà le code d'une page de test.php que j'essaie de réaliser

<html>
<head>
<title>test_redirection</title>
  
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<p align="center">
<p align="center"><font size="7" color="#FF0000"><b><label id="Compte"></label><label id="Compte"> 
  <script type="text/JavaScript">
var Affiche=document.getElementById("Compte");
function Rebour() {
var date1 = new Date();
var date2 = new Date ("Dec 04 00:30:00 2014");
var sec = (date2 - date1) / 1000;
var n = 24 * 3600;
if (sec > 0) {
j = Math.floor (sec / n);
h = Math.floor ((sec - (j * n)) / 3600);
mn = Math.floor ((sec - ((j * n + h * 3600))) / 60);
sec = Math.floor (sec - ((j * n + h * 3600 + mn * 60)));
Affiche.innerHTML = + j +" j "+ h +" h "+ mn +" min "+ sec + " s ";
window.status = " dans " + j +" j "+ h +" h "+ mn +" min "+ sec + " s ";
}
tRebour=setTimeout ("Rebour();", 1000);
}
Rebour();
<?php
 {
 if (Rebour ===0)
    header('Location: [http://www.ma nouvelle page ');|nofollow]
       }
?>
</script>
  </label></b></font></p>
<p align="center"><font size="7" color="#FF0000"><b><label id="Compte"> </label></b></font></p>
</body>
</html>


Le compteur s'affiche s'il est toujours en décompte, mais arrivé à la fin, il ne se passe rien ; par contre la page reste blanche si le temps est dépassé lors de l'appel.
Quant à la redirection, elle fonctionne si j'enlève l'un des trois signes = de (Rebour ===0), mais elle se fait directement sans l'affichage du compteur... Voilà quinze heures que je cherche désespérément sans pouvoir avancer... donc, si vous pouvez m'aider, de tout coeur merci.

EDIT : Ajout des balises de code (jordane)
A voir également:

5 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
4 déc. 2014 à 03:09
Bonjour,

1 - Ta fonction JAVASCRIPT ne contient aucu RETURN ...
donc ta condition ...if (Rebour ===0) ne doit jamais être vrai... car rebour est surement NULL....

2 - Evites d'utiliser du PHP DANS les balises SCRIPT...
Pour faire des redirections de page... Javascript possède des instructions exprès...
regardes du côté de : window.location()
https://developer.mozilla.org/fr/docs/Web/API/window/location

3 - J'ai édité ton message pour y ajouter les balises de code....
Merci d'y penser la prochaine fois.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code


1
neophyte88 Messages postés 4 Date d'inscription mercredi 3 décembre 2014 Statut Membre Dernière intervention 4 décembre 2014
Modifié par neophyte88 le 4/12/2014 à 13:32
Bonjour
Merci beaucoup jordane45 pour ta réactivité et une réponse que je n'osais espérer si rapide... mais qui me laisse toujours dans l'embarras !
Pardon aussi pour le non respect de la règle d'insertion de code que je n'avais pas comprise...
J'ai épluché encore toute la matinée les liens très pertinents que tu m'adresses et je tente désespérément d'écrire cette fonction qui redirigera ma page à la fin du compte à rebours...
"NouveauNé" eut été un pseudo plus réaliste que "Neophyte" : pire que dans le brouillard, je suis comme un aveugle dans sa nuit, et j'avance à tatons, mais rien ne se produit...
voilà mon exercice de ce matin, qui reste sans résultat...

<code><script language="JavaScript">
function Redirection() {
var ladate=new Date()
var = adresse de la page actuelle
if (date>"heure de la fin du compte à rebours") {<br>
var () = window.location;<br>
} else {<br>
window.location.reload(true);
window.location =adresse de la nouvelle page;
} 
</script>

</code>
merci encore pour votre disponibilité pour votre aide
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
4 déc. 2014 à 14:12

Merci beaucoup jordane45 pour ta réactivité

Tu peux remercier les chiens de mes voisins qui m'ont réveillé à 3h du mat ^^


mais rien ne se produit...

Tu as pleins d'erreur dans tes scripts...

Voici un qui devrait fonctionner :

<html>
<head>
<title>Test</title>
</head>
 <body>
 
   </label></b></font></p>
<p align="center"><font size="7" color="#FF0000"><b><label id="Compte"> </label></b></font></p>

 <script type="text/JavaScript">
function Rebour() {
var Affiche=document.getElementById("Compte");
var date1 = new Date();
var date2 = new Date ("Dec 04 00:30:00 2014");
var sec =(date2-date1) / 1000;
var n = 24 * 3600;
	if (sec != 0) {
		j = Math.floor (sec / n);
		h = Math.floor ((sec - (j * n)) / 3600);
		mn = Math.floor ((sec - ((j * n + h * 3600))) / 60);
		sec = Math.floor (sec - ((j * n + h * 3600 + mn * 60)));
		Affiche.innerHTML =  j +" j "+ h +" h "+ mn +" min "+ sec + " s ";
		window.status = " dans " + j +" j "+ h +" h "+ mn +" min "+ sec + " s ";
	}else{
	 var newAdress = "ma_nouvelle_page.php";
	 //console.log ("Redirection...");
	 window.location.href = newAdress;
	}
	tRebour=setTimeout ("Rebour();", 1000);
}
//-----------------------------------------------------------
Rebour();

</script>

</body>
</html>


0
neophyte88 Messages postés 4 Date d'inscription mercredi 3 décembre 2014 Statut Membre Dernière intervention 4 décembre 2014
4 déc. 2014 à 15:11
Merci de tout coeur pour l'aide que tu veux bien m'apporter !
je viens d'essayer le code que tu m'as envoyé, mais à la fin du compte à rebours, au lieu de charger la nouvelle page, il passe en négatif : il affiche -1j24h59mn etc...
j'ai beau vérifier si j'ai fait une erreur en inscrivant l'adresse... je ne vois rien...
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
4 déc. 2014 à 16:51
Oupss...
Modifie cette ligne :
if (sec != 0) {

par
if (sec > 0) {
0

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

Posez votre question
neophyte88 Messages postés 4 Date d'inscription mercredi 3 décembre 2014 Statut Membre Dernière intervention 4 décembre 2014
4 déc. 2014 à 18:17
Quel bonheur après tant d'heures passées à se casser la tête et les épaules de voir enfin la page souhaitée s'afficher à la fin du compte à rebours !
Merci infiniment, ça marche parfaitement !
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
4 déc. 2014 à 18:47
Pour info..


Dans ton script JS .. tu faisais référence à un élément HTML
var Affiche=document.getElementById("Compte");

Qui n'était pas encore disponible dans la page (puisque placé en dessous de son appel par le script..)
Pour remédier à ça j'ai placé l'HTML au dessus..
0