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 :

[Cookies] site multilangue


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut [Cookies] site multilangue
    Bonjour à tous, j'aimerais que mon site soit en 2 langues(fr et eng ). Pour cela, j'ai mis deux petits liens en haut de mes pages.

    Ainsi, quand je cliquerais sur le lien fr, la page actuelle sera en version française.(mapage.php?lang=fr)

    Mon problème est que quand il y a des données venant d'un formulaire($_POST), ces données seront perdues.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="lang" value="fr" />
    Ou plus simple : tu stocke en session ou meme dans un cookie comme ça à chaque fois que l'utilisateur vient, ce sera dans sa langue

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    et les données venant d'un formulaire par la méthode POST?

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    je veux dire, par exemple voila ma page mapage.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    if(isset($_POST['valeur'])){
    $valeur = $_POST['valeur'];
    }
    ?>
    <table>
    <tr><td><input type=button value=Français/></td></tr>
    <tr><td><input type=button value=Anglais/></td></tr>
    </table>
    que doit-je affecter au bouton Anglais pour que ma page actuel soit en anglais, sans perdre la valeur $_POST['valeur']

  5. #5
    FFF
    FFF est déconnecté
    Membre actif Avatar de FFF
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 342
    Points : 282
    Points
    282
    Par défaut
    alors soit tu fais un formulaire utilisant la méthode POST et tu récupères la variable postées avec $_POST['mavariable'], sinon tu utilises la méthode GET et tu récupères ta variable avec $_GET['mavariable']. Ce que tu fais tu utilises la méthode post pour le formulaire et si $_POST['mavariable'] ne contient rien tu utilises $_GET['mavariable'], l'un ou l'autre doit obligatoirement fonctionner, je pense que cela peut varier en fonction de ton navigateur et de la façon dont tu passes tes paramètres...

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    je peux mettre avec le code un hidden

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type=hidden name=valeur value=<?php echo $_POST['valeur'] ?>
    mais il n'y a pas qu'une seule valeur que je passe en méthode post

  7. #7
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Hello,

    tu peux stocker ton tableau $_POST sérialisé dans une variable de session.
    Ou faire la même chose avec un champ caché :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="hidden" name="myPost" value="<?php echo base64_encode(serialize($_POST)); ?>"/>

  8. #8
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    et que dois-je mettre sur les boutons(ou sur les liens)?

  9. #9
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    En cas de session, rien.
    Ta session se transmet de page en page automatiquement (c'est le principe ;-) ).

    A chaque page où tu attends des post, tu vérifies si la variable de session existe (où si tu les as directement, d'abord). Si tu as la variable de session, récupère ton tableau (unserialize, base64_decode), et pense à vider cette variable... A chaque page où tu as un formulaire, tu sérialises tes post.

    Si tu utilises un champ hidden, ben rien non plus, il suffit que le champ hidden soit dans le formulaire te servant à valider FR ou EN. Tu récupèreras la chaîne encodée et sérialisée dans le tablea $_POST, avec comme clef le nom que tu auras donné à ton champ caché. Et même principe : quand tu attends des post, tu vérifies s'ils existent. Sinon, tu vérifies si ton $_POST['monPostSerialise'] existe.

  10. #10
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    est-ce que tu peux me montrer un exemple avec le code suivant?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if(isset($_POST['valeur'])){
    $valeur = $_POST['valeur'];
    }
    ?>
    <table>
    <tr><td><?php echo $valeur ?></td></tr>
    <tr><td><input type=button value=Français/></td></tr>
    <tr><td><input type=button value=Anglais/></td></tr>
    </table>
    C'est ma page mapage.php, si on clique par exemple sur le bouton français, c'est mapage.php en version française qui doit être affichée.
    Merci beaucoup

  11. #11
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Heu, un truc du genre :

    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
     
    <?php
    //traitement isset ...etc pour le clic sur fr ou sur en {
      if (isset ($_POST['myPost']) && !empty($_POST['myPost'])) {
        $tabPost = unserialize (base64_decode($_POST))
      }
    }
    ?>
     
    <?php echo tabPost['valeur']; ?>
    <form method="post">
    <input type="hidden" name="myPost" value="<?php echo $var = base64_encode(serialize($_POST)); ?>"/>
    <input type="submit" name="fr" value="Français"/>
    <input type="submit" name="en" value="Anglais"/>
    </form>

  12. #12
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 231
    Points : 73
    Points
    73
    Par défaut
    merci beaucoup,
    je vais esayer de m'en sortir avec ça

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

Discussions similaires

  1. [MySQL] Session /Cookie et site multilangue
    Par Invité dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/09/2011, 12h18
  2. [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
  3. [Cookies] Erreur de code pour un site multilangue
    Par MaTTuX_ dans le forum Langage
    Réponses: 2
    Dernier message: 25/08/2007, 22h23
  4. Réponses: 9
    Dernier message: 01/06/2006, 22h23
  5. [Cookies] Site PHP multilangue
    Par RobinNono dans le forum Langage
    Réponses: 4
    Dernier message: 15/05/2006, 13h47

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