web-dev-qa-db-fra.com

Redirection de page après un certain temps PHP

Il existe une certaine fonction PHP pour rediriger après un certain temps. Je l'ai vu quelque part mais je ne m'en souviens pas. C'est comme la redirection gmail après la connexion. S'il vous plaît, quelqu'un pourrait-il me le rappeler?

86
afaolek
header( "refresh:5;url=wherever.php" );

c'est le moyen php de définir header qui vous redirigera vers wherever.php dans 5 secondes


Rappelez-vous que header () doit être appelé avant toute sortie réelle, soit par des balises HTML normales, des lignes vierges dans un fichier ou par PHP. C'est une erreur très courante de lire du code avec des fonctions include ou require, ou une autre fonction d'accès à un fichier, et d'avoir des espaces ou des lignes vides à afficher avant l'appel de header (). Le même problème existe lorsque vous utilisez un seul fichier PHP/HTML. (source php.net )

208
Teneff

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

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

},5000); // 5 seconds
24
Ibu

Vous pouvez essayer ceci:

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

Où 10 est en secondes.

16
royrui

vous voudriez utiliser php pour écrire une balise META.

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

Ce n'est pas recommandé mais c'est possible. Le 5 dans cet exemple est le nombre de secondes avant l'actualisation.

11
John
header( "refresh:5;url=wherever.php" );

en effet, vous pouvez utiliser ce code comme l'a dit teneff, mais vous n'avez pas nécessairement à mettre l'en-tête avant toute sortie envoyée (cela produirait un "ne peut pas déplacer l'en-tête ....: 3 error").

Pour résoudre ce problème, utilisez la fonction php ob_start(); avant l'affichage du code HTML.

Pour mettre fin à l'ob, il suffit de mettre ob_end_flush(); après que vous n'ayez aucune sortie HTML.

à votre santé!

2
JJJack

Si vous redirigez avec PHP, vous utiliseriez simplement la commande sleep () pour mettre en veille quelque temps que ce soit avant la redirection.

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

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

1
Jason Palmer

L'actualisation PHP après 5 secondes ne fonctionnait pas lorsque j'ouvre un dialogue Enregistrer sous pour enregistrer un fichier: (En-tête ('Content-type: text/plain'); en-tête (" Content-Disposition: attachment; filename = $ filename> ");)

Une fois que le lien Enregistrer sous a été cliqué et que le fichier a été enregistré, l'actualisation temporisée s'est arrêtée sur la page d'appel.

Cependant, merci beaucoup, la solution javascript d'ibu continue de cocher et d'actualiser ma page Web, ce dont j'avais besoin pour mon application spécifique. Je vous remercie donc ibu pour la solution JavaScript apportée ici au problème php.

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

setTimeout(function () {    
    window.location.href = 'http://www.google.com'; 
},5000); // 5 seconds
1
JustJohn

Mon offre est d'utiliser la fonction sleep().

<?php
sleep(5);
header('location'.URL);
?>

Vous pouvez utiliser ce code javascript pour rediriger après un temps spécifique. J'espère que ça va marcher.

setRedirectTime(function () 
{
   window.location.href= 'https://www.google.com'; // the redirect URL will be here

},10000); // 10 seconds
0
Prodip Kirtania