Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/12/2012, 09h54   #1
andaman
Futur Membre du Club
 
Inscription : juin 2010
Messages : 96
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : juin 2010
Messages : 96
Points : 15
Points : 15
Envoyer un message via MSN à andaman
Par défaut Probleme de redirection suivant une langue

Bonjour.
Je developpe un site en 3 langues (francais, anglais, khmer). Cependant, je ne peux pas le proposer directement dans ces 3 langues.

J'attribue une valeur a chaque langue comme ceci et je fais une condition pour l affichage des drapeaux:

Code :
1
2
3
4
5
6
7
8
9
10
 
$lang_fr = '1';
$lang_en = '0';
$lang_kh = '0';
if($lang_fr == 1){
     echo "<li><a href=\"".$address_website."fr/".$row_fr['url']."\"><img src=\"".$address_website."webroot/img/France-Flag-24.png"."\" height=\"24\" width=\"24\" title=\"Pictura in French language\" alt=\"Pictura French\" /></a></li>\n";
}
if($lang_en == 1){
     echo "<li><a href=\"".$address_website."en/".$row_en['url']."\"><img src=\"".$address_website."webroot/img/United-Kingdom-flag-24.png"."\" height=\"24\" width=\"24\" title=\"Pictura in French language\" alt=\"Pictura French\" /></a></li>\n";
}
Le problème c est qui si l utilisateur change la langue dans l'url, il obtient malgré tout par exemple l anglais qui est desactive. Donc je fait un test comme ci dessous mais le navigateur me signe une boucle de redirection.

Code :
1
2
3
4
 
if($lang_en == 0 && $lang_kh == 0 ){
    header("Location: http://localhost/agence/fr/accueil");
}
Quelqu'un aurait il une idee?

Merci d'avance.
David
andaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 11h37   #2
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 649
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 649
Points : 7 528
Points : 7 528
Envoyer un message via Skype™ à jreaux62
Bonjour,
je pense que tu devrais revoir la gestion des langues.
En mettant la langue "en cours" en SESSION, par exemple.

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
$langues = array('fr', 'en', 'kh');
// si l'utilisateur change la langue dans l'url : on met la bonne langue
foreach($langues as $lg){
	if( strpos($_SERVER['PHP_SELF'], $address_website.$lg.'/') ){
		$_SESSION['lang'] = $lg;
	}
}
if( empty($_SESSION['lang']) ){
		$_SESSION['lang'] = 'fr'; // langue par défaut
		header("Location: ".$address_website."fr/accueil");
		exit;
}
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 12h37   #3
andaman
Futur Membre du Club
 
Inscription : juin 2010
Messages : 96
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : juin 2010
Messages : 96
Points : 15
Points : 15
Envoyer un message via MSN à andaman
Merci pour cette reponse qui fonctionne comme ceci

Code :
1
2
3
4
5
6
7
8
9
10
11
$langues = array('fr','en');
foreach($langues as $lg){
    if(strpos($_SERVER['PHP_SELF'], $website_adr.$lg.'/') ){
        $_SESSION['lang'] = $lg;
    }
}
if($_GET['lang'] != in_array($_GET['lang'],$langues)){
    $_SESSION['lang'] = 'fr'; // langue par défaut
    header("Location: ".$website_adr."fr/accueil");
    exit;
}
andaman est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h49.


 
 
 
 
Partenaires

Hébergement Web