Redirection par header ou javascript?

Résolu
Utilisateur anonyme - 26 juin 2005 à 14:39
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 26 juin 2005 à 16:37
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>

8 réponses

FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
26 juin 2005 à 14:59
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 :)
3
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
26 juin 2005 à 15:23
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...

3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
26 juin 2005 à 16:37





<li>
1
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
26 juin 2005 à 15:21
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...

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
26 juin 2005 à 15:27
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...
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
26 juin 2005 à 15:38
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...

0
Utilisateur anonyme
26 juin 2005 à 15:48
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 à+
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
26 juin 2005 à 16:35
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>
0
Rejoignez-nous