IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Session /Cookie et site multilangue [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut Session /Cookie et site multilangue
    Bonjour

    Voilà je vais essayer d'expliquer le soucis que je rencontre :

    Je suis en train de m'entrainer pour faire un site en multilangue en utilisant les sessions avec cookie !
    Par contre ce site je le fais sans base de donnée et uniquement en PHP.

    L'architecture du site :
    Dossier css
    Dossier images
    Dossier includes
    Dossier lang
    index.php

    Donc dans le dossier include j'ai un fichier lang.php qui sert pour le choix de la langue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
    session_start();
    if ((isset($_GET['lang']) && !empty($_GET['lang'])) || (isset($_COOKIE['lang']) && !empty($_COOKIE['lang']))) {
        $_SESSION['lang'] = $_GET['lang'];
        setcookie("lang", $_SESSION['lang'], time() + (3600 * 24 * 365));
    }
    // Langue par défaut
    if (empty($_SESSION['lang'])) $_SESSION['lang'] = 'fr';
     
    include('lang/'.$_SESSION['lang'].'_lang.php');
    ?>
    Dans le dossier lang j'ai 3 fichiers pour les langues :
    en_lang.php
    es_lang.php
    fr_lang.php

    jusqu'a là rien d'anormal !!

    Ensuite le fichier index.php :
    en premier j'y inclu mon fichier langue.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    require("includes/langue.php");
    ?>
    ensuite le html et pour la sélection du language je fais comme ceuci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          <span style="margin-left:10px;"><a href="?lang=fr"><img src="images/lang/fr.jpg" title="Fran&ccedil;ais" border="0" /></a><br /></span>
          <span style="margin-left:10px;"><a href="?lang=en"><img src="images/lang/gb.jpg" title="English" border="0" /></a><br /></span>
          <span style="margin-left:10px;"><a href="?lang=es"><img src="images/lang/es.jpg" title="Espa&ntilde;ol" border="0" /></a></span>
    Mon soucis c'est que lorsque je change de langue en cliquant sur le drapeau tout va bien la page est bien traduite mais lorsque je change de page je revien au language par défaut !

    Merci pour vos éclaircissements !!

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 174
    Points : 241
    Points
    241
    Par défaut
    Bonjour,

    Il y a quelques temps, j'utilisais ce p'tit bout de script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    /*
    Cette page permet de changer de langue. 
    On réceptionne :
    - la langue choisie en $_GET
    - l'adresse où se trouve la personne
    */
    if(isset($_GET['ln'])&&(!empty($_GET['ln']))){
    	session_start();
    	switch($_GET['ln']){
    		case 'en': // anglais
    		case 'de': // allemand
    		case 'ne': // hollandais
    		case 'es': // espagnol
    		case 'it': // italien
    		case 'fr': // Français !!!!!
    			// on met la langue choisie en session
    			$_SESSION['ln']=$_GET['ln'];
    			// et on header sur la page d'où l'on vient :
    			if(isset($_GET['u'])&&(!empty($_GET['u']))){
    				header('Location:'.$_GET['u']);
    			}else{
    				// on header sur racine si pas de u :
    				header('Location:/');
    			}
    		break;
    		default:
    			header('Location:/');
    		break;
    	}
    }else{
    	// si la page est appelée par accident, on header sur racine :
    	header('Location:/');
    }
    ?>
    ln : c'est le param de langue
    u : c'est le param de la page courante.

    Une fois que la langue était choisie, elle était en include $_SESSION['ln'].'_lng.php dans la page d'index, et cet include était chargé avec des constants.

    Ce marchait très bien.

    Toi, dans ton cas, il semblerait que ta valeur en session soit réinitialisée.
    Essaye dans ta page de faire un echo $_SESSION['lang'];

    @+

    lenono
    NginX, SphinxSearch Addict !!

  3. #3
    Invité
    Invité(e)
    Par défaut
    Re'

    quand je change de page effectivement la session se remet sur le language par défaut !

    Quand je suis sur l'index avec echo $_session['lang'] que je clique sur l'anglais j'ai en qui s'affiche et des que je clique sur une autre page ca revient en fr.

    Edit : En fait j'ai finalement trouvé mon erreur qui n'est absolument pas sur les fichiers que je cite dans les messages du dessus mais l'erreur venait de mon fichier menu !
    Les liens que j'avais créé etait sans la session lang donc forcement la session n'était pas sauvegardée.
    Merci quand même d'avoir pris le temp de me répondre.
    Dernière modification par Invité ; 02/09/2011 à 14h07.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Souci de session / cookie site multilangue
    Par andaman dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/09/2010, 13h01
  2. [Cookies] Erreur de code pour un site multilangue
    Par MaTTuX_ dans le forum Langage
    Réponses: 2
    Dernier message: 25/08/2007, 22h23
  3. Réponses: 2
    Dernier message: 25/04/2006, 17h08
  4. [Cookies] site multilangue
    Par manaboko dans le forum Langage
    Réponses: 11
    Dernier message: 22/11/2005, 13h58
  5. Gros problème de session/cookies
    Par valfredr dans le forum XMLRAD
    Réponses: 18
    Dernier message: 03/06/2004, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo