Problème avec la fonction header de PHP

[Résolu]
Signaler
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
    Bonjour à tous,

Voilà, je suis encore ce qu on peut appeller un petit newbi en php, et voici ce que j'aimerai faire:
Dc je viens de créer mon site qui est tjs en local, et dedans j'utilise des frames, mais pour optimiser mon referencement j'aimerai indexer mes frames (car il contient le texte avec les mots clés et ...), or si mes frames sont mieux indexé que mes autres page, l'internaute tombera sur ma page sans menu, sans rien, c'est pour cela que j ai mis un petit bout de code PHP (dans la page qui est la source de la frame) au dessus qui :

<?php if (!isset($_GET['go']))

    {if($_GET['go']!='test')

            {$url="http://127.0.0.1/test%20site%20ocean%20projects/";

            $langue_site="aquarium_concept_et_thematique.html";

            header("Location: http://" .$url .$langue_site);}

    }

?>

<html>

<head> .....................

Donc si la personne vient de la page normal, j'envoie la variable
"go=test" et la sa fonctionne bien, mais si je clique directement
sur page( en gros la source de la frame) j'obtiens ce message d'erreur:

Notice: Undefined index: go in c:\program files\easyphp1-8\www\test site ocean projects\texte\texteconcept_thematique.php on line 2

Warning: Cannot modify header information - headers already sent

by (output started at c:\program files\easyphp1-8\www\test site ocean

projects\texte\texteconcept_thematique.php:2) in c:\program files\easyphp1-8\www\test site ocean projects\texte\texteconcept_thematique.php on line 5

Cordialement Arnaud

9 réponses

Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009

    Ben re, j'ai trouvé la solution, j'ai rajouter ob_start(); tout en haut et op plus de problème

Arnaud
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009

    Rebonjour, en faite je crois savoir ce qui fait que sa m....de, c'est au niveau du test de la variable, normal car si l'internaute clic dessus elle n a pas de valeur dc genere un message d'erreur ce qui veut dire que le header marchera  pas, dc la question serait, comment eviter cela.

En vous remerciant d'avance Arnaud
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
C'est pas la solution...tu veux afficher 2 headers tu as juste a rien afficher avant le header(...);

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009

C'est bien beau de dire cela, mais si tu regardes le code, je n'affiche rien avant le header, donc si tu as autres chose d'autre à proposer je suis preneur, mais en attendant ma soluce marche.

Cordialement Arnaud
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009

C'est bien beau de dire cela, mais si tu regardes le code, je n'affiche rien avant le header, donc si tu as autres chose d'autre à proposer je suis preneur, mais en attendant ma soluce marche.

Cordialement Arnaud
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Toi tu n'affiches effectivement rien mais il y a une erreur...
Pour preuve desactive le header(...);
En gros $_GET['go'] n'est pas défini.

<?php if (!isset($_GET['go']))

    {
if($_GET['go']!='test')

justement faut pas le ! faut qu'il soit set banane va

PS : je deteste ton indentation
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
41
Date d'inscription
mardi 17 janvier 2006
Statut
Membre
Dernière intervention
14 octobre 2009

Le GET_['go'] n'est pas définit seulement si l'internaute ne passe par la page du site et c'est pour cela que je fais un test, si elle est définit sa veut dire qu'il est passé par le menu, si elle est pas définit c'est qu il est passé par l'url et une redirection est alors necessaire. Sinon tu dis que le !isset n'est pas utile???
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

ouais, sauf que tu lui dit : si $_GET['go'] n'est PAS définit, alors teste si $_GET['go'] est différent de 'test'...ce qui est absurde tu en conviendras :-)
!isset() c'est NON DEFINIT; Pour savoir si c'est définit, c'est if(isset($bla)).
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Donc en effet; ob_start() ne résoud pas le vrai problème : ton code est faux, c'est ça qu'il faut corriger.