Redirection par header ou javascript? [Résolu]

Signaler
Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonjour!

En fait je ne comprends pas tout aux redirections par header php, alors y a-t-il un inconvénient à utiliser un javascript?

Merci



<script language="javascript" type="text/javascript">
<!--
window.location.replace("http://www.un-site.com/une-page.htm");
-->
</script>
A voir également:

8 réponses

Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
Si tu désactives le javascript ==> pas de redirection :)



Sinon, il te reste la balise meta http-redirect je crois bien.



Pour une redirection avec header php, c'est comme ca :

header('Location:index.php');

sans plus :)
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
16
Y'a eu un problème avec le message précédent... Je le refais.


<HR>


Même si le JS est actif, c'est même pas sûr qu'il soit interprété. J'ai eu des problèmes avec des trucs du style :
<script>
location = 'page.html';
</script>


Si tu utilises le header, aucun ECHO de PHP ne doit avoir été appelé avant. Si c'est le cas, tu dois passer par la balise suivante : http://www.phpcs.com/forum.v2.aspx?ID=494000
<meta http-equiv="refresh" content="10;URL=page.html">


10 représente le temps en seconde. Mais tu peux attendre moins longtemps.

===========
Validez les réponses si ok...

Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8





<li>
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
16
Même si le JS est actif, c'est même pas sûr qu'il soit interprété. J'ai eu des problèmes avec des trucs du style :
<script>
location = 'page.html';
</script>

Si tu utilises le header, aucun ECHO de PHP ne doit avoir été appelé avant. Si c'est le cas, tu dois passer par la balise suivante : http://www.phpcs.com/forum.v2.aspx?ID=494000
<meta http-equiv="refresh" content="10;URL=page.html">

10 représente le temps en seconde. Mais tu peux attendre moins longtemps.

===========
Validez les réponses si ok...

Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Merci de ta réponse, et est-ce qu'il y a bcp de monde avec le javascript désactivé?

Pour le header il me dit qu'il ne peut pas le faire parce qu'il est
déjà fixé ou truc comme ça, même si j'utilise ob_start( ) et
ob_end_flush( )... à moins que je les utilise mal?

Et enfin pour la balise html, de temps en temps elle veut pas marcher
pas avec Firefox (bug?) et puis tout le monde dit qu'il ne faut plus
l'utiliser **soupir**

C'est galère...
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
16
Généralement, le JS est actif (config par défaut), mais ensuite tout dépend de sa qualité d'interprétation par le navigateur. MSIE reste malgré tout un TOP en la matière (ce n'est que mon avis). On bloque le JS seulement quand il peut nous nuire (sur des sites pas fréquentables, dirons-nous).

Sinon, démer*e-toi pour faire le header de redirection avant tout affichage qui pourrait se révéler inutile par la suite. Même si c'est pas évident, faut essayer d'éviter ces patchs gratuits ob_* qui peuvent transformer ton code en une sorte de bidouille non rigoureuse.

===========
Validez les réponses si ok...

Messages postés
1980
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
24 septembre 2012
5
Ok bon je crois que je vais enchaîner un javascript et une balise html,
comme ça ce sera vraiment pas de bol si la redirection marche pas ;)

merci de vos réponses à+
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



privilégie le header(), c'est beaucoup plus propre et ça fonctionne avec tous les navigateurs, contrairement au javascript.



Bref si tu ne peux utiliser de header() pour cause de headers déjà
envoyés, tu rajoutes ob_start(); tout en haut de ta page et
ob_end_flush(); tout en bas.



a +






<li>