Position actuelle: Accueil> Derniers articles> Comment utiliser en-tête () pour implémenter la redirection de page

Comment utiliser en-tête () pour implémenter la redirection de page

M66 2025-05-18

Dans PHP, la fonction d'en-tête () est utilisée pour envoyer les informations d'origine HTTP. Ces en-têtes peuvent contrôler le comportement du navigateur, tel que la définition de la redirection de la page. La redirection de la page est généralement utilisée lorsque vous devez diriger l'utilisateur vers une autre page, comme la redirection vers la page d'accueil de l'utilisateur après la connexion, ou vers une nouvelle page dans certaines conditions.

Cet article présentera comment utiliser la fonction d'en-tête () dans PHP pour implémenter la redirection des pages et afficher quelques exemples courants.

Syntaxe de base

La syntaxe de base de la fonction d'en-tête () est la suivante:

 header(string $header, bool $replace = true, int $response_code = 0): void
  • $ En-tête : passe la chaîne d'en-tête HTTP à envoyer.

  • $ Remplace : Si vrai (par défaut), le même type de valeur dans l'en-tête actuel sera remplacé. Si faux , l'en-tête est annexé à l'en-tête.

  • $ réponse_code : spécifie le code d'état de réponse HTTP, la valeur par défaut est 0, ce qui signifie que le code d'état n'est pas défini.

Implémenter la redirection de la page

Pour effectuer une redirection de page, il peut être réalisé via l'en-tête de l'emplacement . L'en-tête d'emplacement indique que le navigateur charge la nouvelle URL.

Par exemple, le code suivant redirige l'utilisateur vers https://m66.net/newpage :

 <?php
header("Location: https://m66.net/newpage");
exit();
?>

Analyse de code:

  • En-tête ("Emplacement: https://m66.net/newpage"); : Cette ligne de code indique au navigateur de passer à https://m66.net/newpage .

  • sortie(); : Pour s'assurer que le script ne continue plus de s'exécuter après l'envoi de la redirection, la fonction exit () est généralement ajoutée. Cela empêche le contenu supplémentaire d'être sorti après la redirection.

Définir le code de réponse à la redirection

Parfois, nous pouvons avoir besoin d'envoyer un code d'état HTTP personnalisé. Par défaut, l'en-tête de localisation utilise un code d'état 302 . Mais vous pouvez également définir explicitement d'autres codes d'état.

Par exemple, pour utiliser le code d'état 301 déplacé en permanence:

 <?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://m66.net/newpage");
exit();
?>

Analyse de code:

  • En-tête ("http / 1.1 301 déplacé de façon permanente"); : Définissez le code d'état de réponse HTTP sur 301, indiquant que la page a été migrée en permanence.

  • En-tête ("Emplacement: https://m66.net/newpage"); : Dites au navigateur de rediriger vers la nouvelle URL.

Utiliser une URL relative

En plus d'utiliser une URL absolue complète, vous pouvez également utiliser une URL relative pour la redirection. De cette façon, lorsque l'utilisateur accède à la page PHP, la redirection sera basée sur le répertoire racine du site Web actuel.

Par exemple, redirigez l'utilisateur vers la page / newpage du site Web actuel:

 <?php
header("Location: /newpage");
exit();
?>

Dans ce cas, / newPage sera redirigé en fonction du nom de domaine actuel. Si la page actuellement accessible par l'utilisateur est https://m66.net/oldpage , l'URL redirigé sera https://m66.net/newpage .

Empêcher la sortie de la redirection

La fonction d'en-tête () doit être appelée avant de sortir quoi que ce soit. En effet, les informations d'en-tête HTTP doivent être envoyées avant d'autres contenus de la page, tels que HTML. Si la page a commencé à sortir du contenu, la fonction en-tête () ne fonctionnera pas correctement et une erreur sera déclenchée.

Pour éviter ce problème, assurez-vous que l'appel à la fonction d'en-tête () est au début du script, ou avant d'envoyer un HTML ou une autre sortie.

Si vous avez accidentellement une sortie (telle que des balises ou des espaces HTML) avant la sortie, vous pouvez utiliser ob_start () pour tamponner la sortie. Par exemple:

 <?php
ob_start();
header("Location: https://m66.net/newpage");
exit();
ob_end_flush();
?>

ob_start () démarre le tampon de sortie, tandis que ob_end_flush () efface le tampon à la fin du script et envoie la sortie.

Conclusion

La fonction d'en-tête () de PHP est un outil très puissant et couramment utilisé, particulièrement adapté à la mise en œuvre de la redirection de page. En définissant correctement l'en-tête d'emplacement , combiné avec le code d'état de réponse HTTP approprié, vous pouvez contrôler le comportement de redirection du navigateur, qu'il s'agisse d'un saut temporaire ou d'un saut permanent.

N'oubliez pas d'éviter toute sortie lors de l'appel en-tête () pour vous assurer que la redirection peut être exécutée en douceur. Si nécessaire, vous pouvez également utiliser la mise en mémoire tampon de sortie pour éviter les problèmes causés par la sortie.

J'espère que cet article sera utile pour que vous compreniez la redirection des pages en PHP!