153 votes

Redirection de page

PHP peut-il effectuer un appel de redirection après l'exécution d'une fonction ? Je crée une fonction à l'issue de laquelle je veux qu'elle soit redirigée vers un fichier situé dans le même dossier racine. Est-ce possible ?

if (...) {
    // I am using echo here.
} else if ($_SESSION['qnum'] > 10) { 
    session_destroy();
    echo "Some error occured.";
    // Redirect to "user.php".
}

52voto

brianreavis Points 6351

L'utilisation d'un javascript comme sécurité intégrée garantira que l'utilisateur est redirigé (même si les en-têtes ont déjà été envoyés). Voilà :

// $url should be an absolute url
function redirect($url){
    if (headers_sent()){
      die('<script type="text/javascript">window.location=\''.$url.'\';</script‌​>');
    }else{
      header('Location: ' . $url);
      die();
    }    
}

Si vous avez besoin de gérer correctement les chemins relatifs, j'ai écrit une fonction pour cela (mais c'est en dehors du cadre de la question).

17voto

CrownFord Points 559

Le moyen simple est d'utiliser :

  echo '<script>window.location.href = "the-target-page.php";</script>';

13voto

   $url='the/url/you/want/to/go';
   echo '<META HTTP-EQUIV=REFRESH CONTENT="1; '.$url.'">';

Ça marche pour moi.

8voto

code-zoop Points 3734
header( "Location: http://www.domain.com/user.php" );

Mais vous ne pouvez pas d'abord faire un écho, puis rediriger.

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