112 votes

Redirection de la page après un certain temps PHP

Il existe une fonction PHP qui permet de rediriger les données après un certain temps. Je l'ai vue quelque part mais je ne m'en souviens pas. C'est comme la redirection de gmail après la connexion. Quelqu'un pourrait-il me le rappeler ?

0 votes

@zerkms : Il semble qu'il y ait plusieurs façons de procéder.

2 votes

@Wesley Murch : Refresh L'en-tête n'est pas standard. Je n'utiliserais jamais des choses qui ne sont pas couvertes par les RFC.

0 votes

stackoverflow.com/questions/18305258/ m'a conduit à stackoverflow.com/questions/283752/refresh-http-header qui indique qu'en plus de ne pas être standard, l'en-tête de rafraîchissement cause également des problèmes de performance dans Internet Explorer.

265voto

Teneff Points 6753
header( "refresh:5;url=wherever.php" );

c'est la manière php de définir header qui vous redirigera vers wherever.php en 5 secondes


Rappelez-vous que header() doit être appelé avant que la sortie ne soit envoyée, soit par des balises HTML normales, soit par des lignes vides dans un fichier, soit par PHP. C'est une erreur très courante de lire du code avec des fonctions include, require, ou une autre fonction d'accès au fichier, et d'avoir des espaces ou des lignes vides qui sont envoyées avant que header() ne soit appelé. Le même problème se pose lors de l'utilisation d'un seul fichier PHP/HTML. (source php.net )

1 votes

Je n'ai jamais vu cette méthode auparavant... mais cela ne va-t-il pas afficher une page blanche ou rester inactif sans aucun message jusqu'à ce que le délai soit écoulé ?

0 votes

Il va afficher la page ... tout ce qu'il fait est de définir l'en-tête qui dira au navigateur de rafraîchir la page dans 5 secondes, si vous voulez vraiment afficher une page vierge, utilisez simplement die();

2 votes

L'inconvénient, c'est que.. : Cet en-tête ne fait pas partie de la norme HTTP, les clients sont libres de l'ignorer.

27voto

Ibu Points 17457

Vous pouvez utiliser le javascript pour rediriger après un certain temps.

setTimeout(function () {
   window.location.href= 'http://www.google.com'; // the redirect goes here

},5000); // 5 seconds

5 votes

@Jami c'est vrai, c'est pourquoi j'ai dit que l'OP peut utiliser javascript à la place.

0 votes

@BenjaminIntal Cela fonctionne également comme une excellente solution de repli si le navigateur ignore une redirection dans l'en-tête. Il faudrait utiliser un navigateur qui n'accepte pas l'en-tête ET qui a désactivé Javascript pour ne pas recevoir la redirection.

18voto

royrui Points 833

Vous pouvez essayer ceci :

header('Refresh: 10; URL=http://yoursite.com/page.php');

La valeur 10 est exprimée en secondes.

12voto

John Points 1134

Vous voudriez utiliser php pour écrire une balise méta.

<meta http-equiv="refresh" content="5;url=http://www.yoursite.com">

Ce n'est pas recommandé, mais c'est possible. Le chiffre 5 dans cet exemple est le nombre de secondes avant le rafraîchissement.

3voto

Jason Palmer Points 513

Si vous redirigez avec PHP, il vous suffit d'utiliser la commande sleep() pour dormir pendant un certain nombre de secondes avant de rediriger.

Mais je pense que vous faites référence à la balise meta refresh :

http://webdesign.about.com/od/metataglibraries/a/aa080300a.htm

0 votes

L'utilisation du sommeil n'est pas l'approche conventionnelle, comme il a été dit plus haut, la fonction d'en-tête doit être utilisée.

0 votes

Le sommeil ne fait-il pas que retarder la connexion ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X