Page 1 sur 1

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

Posté : 12 mars 2007, 01:26
par Boro64
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?

Posté : 12 mars 2007, 03:10
par guilt92
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...

Posté : 12 mars 2007, 04:21
par ghalaad
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');
} 

Posté : 12 mars 2007, 08:16
par Boro64
Merci à vous deux...je ré écris ça.