Problème avec la fonction header de PHP

Résolu
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009 - 29 avril 2008 à 15:35
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 29 avril 2008 à 19:41
    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

ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009
29 avril 2008 à 16:22
    Ben re, j'ai trouvé la solution, j'ai rajouter ob_start(); tout en haut et op plus de problème

Arnaud
3
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009
29 avril 2008 à 16:06
    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
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
29 avril 2008 à 17:10
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
0
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009
29 avril 2008 à 17:24
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
0

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

Posez votre question
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009
29 avril 2008 à 17:24
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
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
29 avril 2008 à 17:38
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
0
ArnaudT62 Messages postés 41 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 14 octobre 2009
29 avril 2008 à 17:47
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???
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 avril 2008 à 19:40
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)).
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 avril 2008 à 19:41
Donc en effet; ob_start() ne résoud pas le vrai problème : ton code est faux, c'est ça qu'il faut corriger.
0