problme de syntaxe ...que je ne vois pas...

Eléphant du PHP | 250 Messages

12 mars 2007, 01:26

Bonjour,
Quelqu'un verrait il ce qui ne va pas dans ce script:
<?php

if($_GET['lang']=='fr')
{
include('langues/fr_lang.php');//si la langue du navigateur est fr (français)
                              //j'inclus le fichier fr_lang.php
}

elseif($_GET['lang']=='en') //si la langue du navigateur est en (anglais
                            //j'inclus le fichier en_lang.php
{
include('langues/en_lang.php');
}
elseif($_GET['lang']=='es')//si la langue est es (espagnol) j'inclus
                            //le fichier es_lang.php
{
include('langues/es_lang.php');
}
else($_GET['lang']=='')//dans tous les autres cas, ou si la langue n'est pas 
                //définie, j'inclus par defaut le fichier français fr_lang.php
{
include('langues/fr_lang.php');
}
?>
Lorsque je mets en ligne j'obtiens cette réponse :
Parse error: syntax error, unexpected '{' in /home.7/h/e/p/heprod/www/dev/langues/choix_lang.php on line 21
La ligne 21 concernée est celle ci:
{
include('langues/fr_lang.php');
}
soit la dernière...
...et là, je ne vois pas... :oops:
Désolé...l'un(e) de vous pourrait il me guider vers la solution, s'il vous plait?
Modifié en dernier par Boro64 le 12 mars 2007, 08:17, modifié 1 fois.
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

Mammouth du PHP | 1353 Messages

12 mars 2007, 03:10

Bonjour,

ton problème vient du fait que, à ma connaissance, tu ne peux pas mettre une condition dans un else.
Si tu veux que ton dernier cas soit ce qui se passe si aucun des autres cas ne s'est produit il faut mettre "else" tout simplement et non pas else(...)

il faut donc que tu remplaces ton else($_GET['lang']=='') {} par else {} et ça devrait fonctionner.

Le else ne peut pas prendre de condition car c'est justement une boucle dans laquelle on entre si la condition du if n'est pas respectée, c'est un "sinon". Si tu veux rajouter une condition supplémentaire dans un else il faut utiliser else if(condition) comme tu l'as fait plus haut.

voila j'espere que ca t aidera...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 49 Messages

12 mars 2007, 04:21

Tu ne peux pas mettre de condition dans else().
Je me permet une remarque toutefois ...
Cette structure à base de if/elseif/else est tout à fait moche :>

Utilise plutôt switch :
switch ($_GET['lang'])
{
    case 'fr': include('langues/fr_lang.php');
        break;
    case 'en': include('langues/en_lang.php');
        break;
    case 'es': include('langues/es_lang.php');
        break;
    default : include('langues/fr_lang.php');
} 

Eléphant du PHP | 250 Messages

12 mars 2007, 08:16

Merci à vous deux...je ré écris ça.
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."