1 mars 2013
Category:
PHP
Comments: 0

Redirection PHP vers une autre page

On peut utiliser, avec PHP, la fonction header() pour rediriger une page vers une autre. Cette fonction header () va alors envoyer un en-tête HTTP pour transférer facilement un utilisateur vers une nouvelle page sans qu’il n’est besoin de cliquer sur un lien. Si la fonction header() ne vous est pas familière, vous devez savoir qu’il est nécessaire, comme dans tout langage de programmation, d’écrire les en-têtes avant d’écrire le contenu de la page. Si vous rencontrez des erreurs, alors gardez à l’esprit que votre erreur provient peut d’une erreur commune lié aux fonctions include() ou require() par exemple, apparaissant comme des espaces et lignes vides avant header(). Dans ce petit tutoriel, nous allons essayer de vous montrer en détails comment utiliser cette fonction header() pour effectuer une redirection avec PHP.

Une redirection en PHP vers une autre page est souvant utile et s’écrit d’une simple ligne de code. Pour finalisé votre page de manière propre, il est recommandé d’ajouter la fonction exit(); empêchant toute exécution du reste de la page.

Pour vous expliquer plus clairement ce que l’on entend par « Souvenez vous que header() doit être appelé avant tout autre chose » vous trouverez ci-dessous quelques exemples ci-dessous qui ne fonctionneront pas, ce qui permettra peut être à certain de comprendre leur erreur.

L’utilisation commune de <html>ainsi que de echo avant l’en-tête fera échouer notre demande.

Notons que les en-têtes sont envoyés dés le premier octet chargé par le navigateur. Dans le cas ou vous remplaceriez les en-têtes de vos scripts, la mise en place des déclarations echo/print et des tampons de sortue peuvent avoir une impact sur la manières dont vos en-têtes seront envoyés. Si on prend le cas des redirections, dans le cas d’un oublis de fin de script après l’envois de votre en-tête, la sortie de vos utilisateurs pourra être différente.

Par exemple, la redirection suivante redirigera vers la page 2.html remplaçant ainsi le premier en-tête.

Cette redirection vers 1.html est envoyé juste avant que l’echo ne soit affiché. Vous n’aurez pas le temps de voir l’erreur « header already sent » car le navigateur aura déjà suivi la redirection avant d’afficher le message d’erreur.

Dans l’exemple précédent, la sortie change le comportement du script, les en-têtes ne seront pas envoyés tant que la page n’aura pas été lu entièrement.

N’hésitez pas à partager votre expérience sur la « redirection en php » dans les commentaires ci-dessous.



Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *