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

Langage PHP Discussion :

Modification d'un cookie


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Par défaut Modification d'un cookie
    Bonjour,

    J'ai un code php qui me crée un cookie afin d'identifier la langue du site.
    Dans le cookie c'est la variable lang qui fait cela.

    Je souhaiterai lorsque que l'utilisateur clique sur le drapeau "uk" que la variable dans le cookie passe a "uk" et quand il clique sur le drapeau "fr" que la variable repasse a "fr" afin de faire le bonne include du texte en fonction de "fr" ou "en".

    Voici mon code php qui permet de crée le cookie et d'include le bon texte suivant la langue qui fonctionne bien le fichier decide-lang.php :

    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
    <?php
     
    	if(isset ($HTTP_COOKIE_VARS['lang'])) {
    		$lang = $HTTP_COOKIE_VARS['lang'];
    	}
    	else { // si aucune langue n'est déclarée on tente de reconnaitre la langue par défaut du navigateur
    		$lang = substr ($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2);
    	}
     
    	if ($_GET['lang']=='fr') { // si la langue est 'fr' (français) on inclut le fichier fr-lang.php
    		include('lang/fr-lang.php');
    	}
     
    	else if ($_GET['lang']=='en') { // si la langue est 'en' (anglais) on inclut le fichier en-lang.php
    		include('lang/en-lang.php');
    		}
     
    	else { // si aucune langue n'est déclarée on inclut le fichier fr-lang.php par défaut
    		include('lang/fr-lang.php');
    	}		 
    	//définition de la durée du cookie (1 an)
    	$expire = 365*24*3600;
     
    	//enregistrement du cookie au nom de lang
    	setcookie ("lang", $lang, time () + $expire);
     
    ?>
    voici mon fichier uk.php qui correspond lorsqu'on clique sur le drapeau "uk" qui ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
    	include("decide-lang.php"); 
     
    	$expire = 365*24*3600;
    	$lang = "en";
    	setcookie ("lang", $lang, time () + $expire);
     
    	header('Location: index.php');
    	exit();
    ?>
    Je pense faire une erreur dans mon code du uk.php

    Avez vous une idée ?

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de stephanegib2
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 152
    Par défaut
    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
    36
    37
    38
     
    <?php
            $lang="";
            //définition de la durée du cookie (1 an)
    	$expire = 365*24*3600;
     
            if(isset($_GET['lang']))
            {
                    $lang = $_GET['lang'];
     
                    //enregistrement du cookie au nom de lang
    	        setcookie ("lang", $lang, time () + $expire);  
            }
    	elseif(isset ($HTTP_COOKIE_VARS['lang'])) 
            {
    		$lang = $HTTP_COOKIE_VARS['lang'];
    	}
    	else 
           { // si aucune langue n'est déclarée on tente de reconnaitre la langue par défaut du navigateur
    		$lang = substr ($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2);
     
    	//enregistrement du cookie au nom de lang
    	setcookie ("lang", $lang, time () + $expire);        
    	}
     
            switch ($lang)
            {
                   case $lang=='fr': // si la langue est 'fr' (français) on inclut le fichier fr-lang.php
    		     include('lang/fr-lang.php');
                         break;
                   case $lang=='en': // si la langue est 'en' (anglais) on inclut le fichier en-lang.php
    		     include('lang/en-lang.php');
                         break;
                   default:
    		     include('lang/fr-lang.php');
                         break;
    	} 
    ?>

    uk.php?lang=en ou uk.php?lang=fr ou uk.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php 
    	include("decide-lang.php"); 
    	header('Location: index.php');
    	exit();
    ?>

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Par défaut
    Salut merci pour ta réponse,

    mais quand je navigue sur mes pages je n'écris pas le ?lang=en ou ?lang=fr

    je navigue par exemple index.php, profil.php, contact.php

    comment faire pour rajouter ?lang=en ou ?lang=fr ?

  4. #4
    Membre expérimenté Avatar de stephanegib2
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 152
    Par défaut
    tes drapeaux on une url ?

    si oui tu ajoute juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <a href="fichier.php?lang=fr">drapeau francais</a>
    <a href="fichier.php?lang=en">drapeau anglais</a>

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2009
    Messages : 236
    Par défaut
    D'accord mais ça c'est pour une seule page précise.

    Je veux que TOUT le site passe en anglais ou français.
    que ?lang=en ou ?lang=fr soit donc rajouter à chaque fin de mes url.

    comment faire ?

  6. #6
    Membre expérimenté Avatar de stephanegib2
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 152
    Par défaut
    l'utilisateur cliquera sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <a href="fichier.php?lang=fr">drapeau francais</a>
    par exemple.

    si il n'a pas encore de cookie, le script créera un cookie avec lang.
    Tu n'as donc pas besoin de mettre ?lang=fr sur tout les liens.

    Après c'est a toi d'afficher le texte selon la valeur de $HTTP_COOKIE_VARS['lang']

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/11/2013, 19h19
  2. Modifications, suppressions cookies FireFox
    Par baym54 dans le forum Android
    Réponses: 2
    Dernier message: 26/12/2012, 18h13
  3. [Débutant] Modification de Cookie IE8
    Par filsdegandalf dans le forum C#
    Réponses: 1
    Dernier message: 04/10/2012, 10h57
  4. Modification de cookies
    Par thib3113 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/06/2012, 02h20
  5. Modification d'un cookie
    Par oliviernouhi dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2012, 17h15

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