Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/12/2007, 22h30   #1
Invité de passage
 
Inscription : décembre 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 3
Points : 0
Points : 0
Par défaut Langage du site avec langue par défaut

Bonjour je n'ai pas vraiment trouver la bonne section donc je poste ici:

Je m'explique sur mon probleme:
J'ai donc un site qui va etre multi langue a l'aide d'un choix par un menue , il change une variable dans la base de donnée.

Cette variable et commandee par la langue du navigateur ,le souci et que je ne peut plus changer la langue via le menue et bref plus rien ne marche ...

voila le changement de variable via la langue du navigateur:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
if (!isset($lg)) 
{
	$lg = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
	$lg = strtolower(substr(chop($lg[0]),0,2));
 
	if($lg == "fr")
		mysql_query("UPDATE accueilV2 SET langue = '1' WHERE ID='1' ") or die(mysql_error());
	else
		mysql_query("UPDATE accueilV2 SET langue = '3' WHERE ID='1' ") or die(mysql_error());
 
}
le navigateur et en francais ? alors la variable met le site en francais.
Sinon elle le met en anglais

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
switch($page)
	    {
			case 'fr':	
				mysql_query("UPDATE accueilV2 SET langue = '1' WHERE ID='1' ") or die(mysql_error());
				header("Location: index.php");
				exit;
				break;
			case 'en':	
				mysql_query("UPDATE accueilV2 SET langue = '2' WHERE ID='1' ") or die(mysql_error());
				header("Location: index.php");
				exit;
				break;
			case 'de':	
				mysql_query("UPDATE accueilV2 SET langue = '3' WHERE ID='1' ") or die(mysql_error());
				header("Location: index.php");
				exit;
				break;
ca c'est la modification de la variable via le menue

donc la variable et donner soit par le navigateur par default soit par le menue car la variable la modification de langue via lg (langue par default du navigateur) ne peut se produire qu'une fois (via isset)

Donc voila j'aimerai en gros savoir comment definir une langue par defau qui puisse etre enssuite modifier par le menue .

Merci beaucoup .
CaZaE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 10h57   #2
Membre émérite
 
Inscription : juin 2002
Messages : 1 013
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 1 013
Points : 959
Points : 959
Citation:
Envoyé par CaZaE Voir le message
J'ai donc un site qui va etre multi langue a l'aide d'un choix par un menu , il change une variable dans la base de donnée.
Je n'ai pas lu la totalité de ton message ni ton script, mais cette phrase me choque :
Ta base de données est commune à tous les utilisateurs
Donc, si quelqu'un choisit l'anglais, tu mets l'anglais dans ta base. La personne suivante choisit le français, qui sera mis dans ta base, et dès lors l'Anglais verra les pages en français et remettra l'anglais. Le Français pas content rechangera la langue en français et les deux quittent ton site qui change de langue sans leur demander leur avis.

La langue ne doit pas être une donnée dans la base, mais une donnée liée à l'utilisateur, donc par exemple en session
francis m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 19h34   #3
Invité de passage
 
Inscription : décembre 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 3
Points : 0
Points : 0
C'est justement ça que je voudrais éviter c'est pour ça que j'aimerai avoir une solution un style de variable de session ou quelque chose comme ça...
CaZaE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2007, 19h43   #4
Membre habitué
 
Avatar de +Guilhem
 
Ingénieur d'études Java/JEE
Inscription : novembre 2007
Messages : 78
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur d'études Java/JEE

Informations forums :
Inscription : novembre 2007
Messages : 78
Points : 102
Points : 102
Pourquoi ne pas utiliser un cookie ?
+Guilhem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2007, 00h06   #5
Invité de passage
 
Inscription : décembre 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 3
Points : 0
Points : 0
Le soucis c'est que j'aimerai qu'il y est le moin de chose qui traine sur le pc de l'utilisateur.

Une variable de session serai t'elle capable d'acomplir cette tache?
CaZaE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 13h21   #6
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 630
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 630
Points : 6 232
Points : 6 232
Bien sur

Pour enregistrer une variable dans la session de l'utilisateur :

Code :
$_SESSION['langue'] = $lg;
et pour la récupérer :

Code :
1
2
3
4
if (isset($_SESSION['langue'])) {
    //là tu travail avec le résultat, exemple :
    $lang = $_SESSION['langue'];
}
N'oublie pas session_start() sur chaque page où tu veux utiliser les sessions...
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h23.


 
 
 
 
Partenaires

Hébergement Web