PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 12-09-2010 20:32:34

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

La logique d'un bouton 'langue'

Salut à tous,

Je vous écris pour connaître votre démarche à l'heure de gérer le passage d'une langue à l'autre sur un site.

Jusqu'ici j'initialisais une variable de session à la un valeur 1 ( qui signifiait 'FR') et je la mettais à jour avec un bouton 'ENG' ( dont la valeur est '2' ) par exemple.

Rien de bien extraordinaire. Le gros problème que je rencontre maintenant c'est que cette démarche à la fâcheuse tendance à engendrer une suite de variables GET des plus pénibles dans la barre URL :

index.php?langue=1&langue=2&langue=1&langue=1

Etc. (Ad libitum)

Depuis que j'ai décidé de me mettre à l'URL Rewriting c'est encore pire vu qu'il faudrait créer des règles bien longues avec l'idée de couvrir tous ces clics intempestifs sur les boutons langue. Absurde!

Ma question, vous l'aurez déduit, est de savoir comment gérer le passage d'une langue à l'autre. J'ai bien sûr tenté de récupérer l'URI et toutes autres sortes de manipulations des variables du type $_SERVER mais sans grande réussite...

Merci déjà pour vos lumières!

Yannick

Hors ligne

#2 12-09-2010 21:30:32

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : La logique d'un bouton 'langue'

Salut,

Le plus simple est d'utiliser un formulaire post qui n'a pas d'action. Si tu met action="" la validation sz fera sur la meme page. Il te reste a inclure la validation du formulaire en haut de la page. Si ton site est entierement en pseudo frame c'est extremement simple il faut juste ajouter une fois la validation. 

Exemple


<?php
// inclusion de fichier si besoin
// je prend pour base que le bouton submit du formulaire de langue s'appel submitlangue
If( isset($_POST['submitlangue'])){
// validation du formulaire dont le $_SESSION['langue'] = 'fr'; ou autre pour ensuite faire ton affichage ;)
}
?>

Si tu souhaite que visiteur ne reutilise pas le formulaire a chaque visite utilise un cookie plutot que les sessions.

Pour ce qui est de ton soucis d'url il n'existe pas dans ce cas wink

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#3 13-09-2010 19:51:06

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Re : La logique d'un bouton 'langue'

Merci pour cette idée facile à mettre en place.
Maintenant si tu dois avoir un lien plutôt qu'un bouton de formulaire submit, comment est-ce que tu peux te passer de $_GET?

Hors ligne

#4 14-09-2010 06:53:32

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : La logique d'un bouton 'langue'

>>comment est-ce que tu peux te passer de $_GET?

avec $_SESSION['??']

a++

Hors ligne

#5 14-09-2010 06:57:46

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Re : La logique d'un bouton 'langue'

C'est pas tout à fait ma question: comment est-ce que tu mets en place un formulaire POST sans avoir un bouton submit, mais plutôt un simple lien comme on peut en avoir avec GET? Je sais qu'on peut soumettre un form avec du javascript sur un lien, mais je n'aime pas trop cette solution...

Hors ligne

#6 14-09-2010 10:24:56

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Re : La logique d'un bouton 'langue'

Ok!

<script type="text/javascript">
  function submitform()
  {
      document.forms["the_form"].submit();
  }
  </script>
<form action="" id="the_form"  method="post" accept-charset="utf-8">
    <input type="hidden" name="language_id" value="3" id="">
       
  </form>
  <a href="javascript: submitform()" <?php print $active_fr ;?> >FRANÇAIS</a>

Et merci!

Hors ligne

Pied de page des forums