message d'erreur easyPHP et Get methode

Invité
Invité n'ayant pas de compte PHPfrance

10 oct. 2005, 14:03

Bonjour,

J'essaie de tordre le cou a un message d'erreur de easyPHP pour le petit code suivant:

Un link renvoie la var. lang, j'ai essaye de nomme le link
<td><a href="TitreEssai1.php?lang=FR" name="sprache"><img id="FR" src=" images/FR.gif"width="36" height="24" alt="FR" style="border: none" ></a></td>

if ($_GET['lang'] == "EN"){include "titelEnglish.php";}
elseif($_GET['lang'] == "FR"){include "titelFranz.php";}
else{include "titelDeutsch.php";}

La var est reprise dans le GET

Le message d'erreur
Notice: Undefined index: lang in c:\program files\easyphp1-8\www\titre\titreessai1.php on line 46

Notice: Undefined index: lang in c:\program files\easyphp1-8\www\titre\titreessai1.php on line 47




j'ai repris de situations equivalentes ce petit truc en essayant de nommer la balise <a...> soit avec l'attrib. id ou encore un essai avec name, mais sans succes.
if (isset($_GET["sprache"]))
{$lang = $_GET["sprache"];}
else
{$lang = "";}
Le but etait d'utiliser ensuite
if ($_GET['$lang'] == "EN"){include "titelEnglish.php";}

Qu'est-ce que je peux faire?

Marc_3

Eléphant du PHP | 357 Messages

10 oct. 2005, 14:10

bon deux choses enfin suis pas top sure de ce que je vais te mettre mais bon :
lorsque tu fais :

Code : Tout sélectionner

<a href="TitreEssai1.php?lang=FR" name="sprache">
ne devrais tu pas mettres en variable la langue ? par exemple :

Code : Tout sélectionner

<a href="TitreEssai1.php?lang=<?php echo $langue; ?>" name="sprache">
seconde chose ne devrais tu pas mettres un isset $_get['lang'] ?

enfin je sais pas se sont des pistes ... :oops:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

10 oct. 2005, 14:13

Qu'est-ce qu'il y a là : titreessai1.php on line 46 ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 oct. 2005, 14:17

Seayoung à raison sur le dernier point

il faut que tu teste si $_get["lang"] existe et que tu prévois une langue par défaut

Tes erreurs viennent du fait qu'il ne connait pas $_GET["lang"] au 1er chargement de la page

Piste (j'ai validé la balise <img> en mettant un / à la fin <img ... />)
<td>
  <a href="TitreEssai1.php?lang=FR" name="sprache">
    <img id="FR" src=" images/FR.gif"width="36" height="24" alt="FR" style="border: none" />
  </a>
</td>

//On commence par tester si la variable en GET existe
if (isset($_GET["lang"])) {
  //Si elle existe, on associe la page en fonction de sa valeur
  switch ($_GET["lang"]) {
    case "EN" :
      include "titelEnglish.php";
      break;
    case "FR" :
      include "titelFranz.php";
      break;
    default //Cette ligne permet d'associer une langue si la valeur contenue n'est pas répertorié avant
      include "titelDeutsch.php"
    }
} else{ //Ce else permet d'afficher une langue si la variable GET n'existe pas
  include "titelDeutsch.php";
} 
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 72 Messages

10 oct. 2005, 14:23

A la ligne 46 il y a la structure de control et la premiere apparition de la var lang dans le skript PHP. Le message d'erreur ne vient que lors du premier chargement de la page ensuite plus.

Pour ce qui est du isset j'ai aussi essaye cette version

if (isset($_GET["lang"]))
{$lang = $_GET["lang"];}
else
{$lang = "";}

mais cela n'aide pas

Mammouth du PHP | 514 Messages

10 oct. 2005, 14:23

moi je crois juste qu'il a oublié de fermer avec ?> avant le code html ...

M'enfin pour c'que j'en dis.
Ne jamais repousser à demain ce qu'on peut faire après demain ...

Eléphant du PHP | 357 Messages

10 oct. 2005, 14:30

Piste (j'ai validé la balise <img> en mettant un / à la fin <img ... />)
Zut j avais po vue ca :oops:
moi je crois juste qu'il a oublié de fermer avec ?> avant le code html ...
je pense pas que ca vient de là car le message d'erreur serait pas ca :wink:


Fait juste avant ton if un echo $_get['lang']; juste histoire de voir

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 oct. 2005, 14:34

moi je crois juste qu'il a oublié de fermer avec ?> avant le code html ...

M'enfin pour c'que j'en dis.
Tu as essayé ce que je t'ai donné ? C'est pas testé mais je suis presque sûr que c'est ce qu'il faut faire
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 72 Messages

10 oct. 2005, 14:46

Pas si vite, je n'arrive pas a tout faire en meme temps.

-Pour zeus, effectivement avec le case sa marche je viens d'essaye.

-pour le echo $_get['lang']; il me dit variable indefinie.

Mais bon voila je vais mediter sur le isset parsque il y a encore quelque chose qui me manque avec cela
Entre temps j'ai aussi corrige ma balise <imag-->
Merci

Marc_3

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

10 oct. 2005, 14:52

-Pour zeus, effectivement avec le case sa marche je viens d'essaye.
:pouce: content pour toi
Mais bon voila je vais mediter sur le isset parsque il y a encore quelque chose qui me manque avec cela
:shock: c'est à dire ?
Qu'est-ce que tu entends par là ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 72 Messages

10 oct. 2005, 14:57

Ben simplement que je sais bien que cette commande existe mais de la a l'utilise a bonne escient j'ai peu etre besoin d'en comprendre un peu plus voila.