Bonjour à tous !
Comme vous le devinerez je débute en PHP.
C'est la deuxième fois que je pose cette question, la première publication m'a permis de comprendre beaucoup de chose mais pas à résoudre mon problème que je vais tenter de vous présenter le plus clairement possible.
Je suis entrain de réaliser un site en 3 langues différentes (en, fr, nl)... il y a donc un script de détection de la langue qui redirige vers
index_en.php
ou index_fr.php
ou index_nl.php.
Tout le texte de mon site se trouve dans un fichier externe en 3 langues :
m_lang_en_inc.php,
m_lang_fr_inc.php,
m_lang_nl_inc.php.
(fichier inclus directement dans l'une des 3 version "index").
Par exemple : m_lang_en_inc.php est inclus directement dans index_en.php
Jusque là tout fonctionne.
Maintenant mon problème :
Un menu "drapeau" est inclus dans chaque page (lui aussi en fichier externe).
Quand on clique sur l'un des drapeau, on retourne sur la page "home" de mon site dans la version correspondant au drapeau (fr, nl, ou en)
Dans cette dernière page ("home" en français par exemple) mon code commence (première ligne de script) par :
<?php
setcookie('ch_langue', '', time() - 3600); //destruction de l'ancien cookie (s'il y en a eut un)
$langue = 'fr'; //attribution de la valeur "fr" à la variable "langue"
setcookie('ch_langue', $langue, 3600); // création d'un cookie "ch_langue"
?>
C'est donc la variable "langue" avec la valeur "fr" que je veux envoyer à la page suivante.
Quand on clique sur un lien se trouvant sur la page "home".
Ce lien envoie sur la page suivante qui doit récupérer cette variable.
Le code sur la page suivante qui est chargé de récupérer la variable :
<?php
if ( isset($_COOKIE['ch_langue'])) {
$langue = $_COOKIE['ch_langue'];
}
else {
$langue = 'en';
}
?>
Donc mon code récupère la variable "ch_langue" avec comme valeur "fr" et sinon il utilise la valeur "en".
Et le problème c'est qu'il utilise TOUJOURS la valeur "en" car il ne reçoit pas la valeur "fr".
J'espère avoir été assé clair.
Encore merci à ceux qui pourront me donner un coup de pouce.
