La redirection
Par Damien, mardi 15 mars 2005 à 20:19 :: Comment faire :: #25 :: rss
Il est souvent très utile de rediriger le visiteur vers une autre page. Par exemple à la suite du traitement d'un formulaire, pour rediriger vers une autre page avec un message de confirmation et ainsi éviter d'ajouter plusieurs fois les données si le visiteur recharge la page.
Il existe plusieurs méthodes pour rediriger le visiteur : avec du php, du javascript ou bien un simple méta tag html. Chaque solution a ses avantages et ses inconvénients. Nous allons les étudier dans ce tutorial.
1- La fonction php header()
La fonction header() permet de faire plusieurs choses et, en particulier, de rediriger vers une autre page.
Quelques exemples :
<?php ?>
Cette fonction doit par contre être utilisée avant d'envoyer des données html, sous peine de produire une erreur.
Attention ! Les espaces et sauts de ligne sont suffisants pour être interprétés comme des données, le script suivant générera donc une erreur.
<- ici <?php ?>
Vous pouvez aussi consulter le manuel pour en connaître les autres possibilités de la fonction header().
2- Redirection en javascript
Si vous êtes tête en l'air ou si voulez écrire du texte avant la redirection (euh.. pourquoi faire?), vous pouvez utiliser du javascript à la place de la fonction php header().
<script type="text/javascript"> document.location.replace("http://www.phpfrance.com"); </script>
Pour fonctionner, il faut néanmoins que le visiteur ait activé le support du javascript... ce qui n'est malheureusement pas toujours le cas :-(
3- Avec les métas tags
Troisième possibilité : utiliser le méta tag refresh.
<meta http-equiv="refresh" content="5; url=http://www.phpfrance.com"> </head> Notre site a déménagé, veuillez mettre à jour vos favoris. </body> </html>
Il y a deux inconvénients ...
- Cette balise se place dans la partie <head> de votre page
- La redirection n'est pas immédiate.
... qui s'avèrent être, par contre, un avantage si vous souhaitez marquer la redirection, en affichant par exemple un texte pendant 5 secondes, avant de rediriger vers votre nouveau site.
Pour en savoir plus sur les Méta Tags, cliquez ici.
4- Conclusion
La meilleure solution, à mon avis, est de faire preuve d'un peu de rigueur et d'utiliser la fonction PHP header(). Dans certaines situations, il peut être utile d'avoir recours au javascript mais utilisez-le le moins possible. Les métas tags n'apportent, quant à eux, que peu d'intérêt, étant donné le petit délai d'attente avant la redirection sauf si vous voulez la mettre en évidence.

Commentaires
1. Le dimanche 20 mars 2005 à 16:51, par spetznaz
2. Le lundi 28 mars 2005 à 22:47, par Peutch
3. Le lundi 4 avril 2005 à 07:50, par fil
4. Le samedi 9 avril 2005 à 17:10, par Damien
5. Le lundi 11 avril 2005 à 10:58, par Raziel78
6. Le lundi 25 avril 2005 à 11:46, par anous
7. Le jeudi 28 avril 2005 à 10:53, par Peutch
8. Le jeudi 28 avril 2005 à 22:15, par max
9. Le vendredi 29 avril 2005 à 20:15, par Yabotu
10. Le mardi 14 juin 2005 à 09:47, par jln
11. Le jeudi 14 juillet 2005 à 13:20, par Gore
12. Le jeudi 18 août 2005 à 19:33, par iowa
13. Le mardi 27 septembre 2005 à 15:41, par Erazer
14. Le lundi 21 novembre 2005 à 17:54, par rick
15. Le mardi 22 novembre 2005 à 12:58, par FFred
16. Le jeudi 15 décembre 2005 à 12:24, par dJack
17. Le lundi 16 janvier 2006 à 22:26, par Black YeLL
18. Le dimanche 19 février 2006 à 19:06, par roulette
19. Le lundi 20 février 2006 à 13:45, par sat
20. Le mardi 14 mars 2006 à 10:41, par Link214
21. Le samedi 8 avril 2006 à 12:21, par FF.redo
22. Le vendredi 19 mai 2006 à 21:23, par Benoit
23. Le vendredi 19 mai 2006 à 21:25, par Benoit
24. Le mardi 6 juin 2006 à 14:52, par P'tit Pierre
25. Le jeudi 22 juin 2006 à 15:24, par Romano
26. Le jeudi 22 juin 2006 à 15:25, par Romano
27. Le jeudi 22 juin 2006 à 15:27, par Obliques
28. Le jeudi 22 juin 2006 à 15:27, par Obliques
29. Le jeudi 22 juin 2006 à 15:27, par Obliques
30. Le jeudi 22 juin 2006 à 15:28, par Obliques
31. Le jeudi 22 juin 2006 à 15:30, par Obliques
32. Le jeudi 22 juin 2006 à 19:17, par dan31
33. Le mardi 4 juillet 2006 à 21:07, par lelapinou
34. Le mercredi 9 août 2006 à 10:49, par david
35. Le jeudi 17 août 2006 à 09:40, par Alain
36. Le samedi 16 septembre 2006 à 02:51, par FrJedi
37. Le samedi 16 septembre 2006 à 03:16, par FrJedi
38. Le jeudi 16 novembre 2006 à 15:48, par Gilloo
39. Le mardi 21 novembre 2006 à 23:08, par Alex
40. Le mardi 28 novembre 2006 à 09:16, par MMartine
41. Le mardi 28 novembre 2006 à 09:55, par Charlie
42. Le vendredi 1 décembre 2006 à 23:07, par Estebann
43. Le lundi 26 mars 2007 à 00:03, par Zebulon
44. Le samedi 5 janvier 2008 à 00:32, par test qi
Ajouter un commentaire