Précédent   Forum du club des développeurs et IT Pro > 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
 
Outils de la discussion
Publicité
'
Vieux 13/11/2012, 09h59   #1
midnighteleven
Invité de passage
 
Homme
Développeur Web
Inscription : octobre 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2012
Messages : 7
Points : 1
Points : 1
Par défaut Mise à jour de session à partir de l'url

Bonjour à tous !
Je n'arrive pas à mettre à jour une variable de session.
Mon code fonctionne sur plusieurs serveurs sur lequel j'ai fait des tests mais par sur celui de mon client. Pour faire mes tests, j'ai réduit le code au maximum ce qui donne :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
session_start(); 
 
if ((isset($_GET['lg']))) {
	$_SESSION['langue_pref'] = $_GET['lg'] ;
}
 
if (!isset($_SESSION['langue_pref']) && empty($_SESSION['langue_pref'])  ) { 
$_SESSION['langue_pref'] = $langue_pref ;	
}
 
 
print_r($_SESSION);
?>
Le but du code est donc de mettre à jour la variable de session langue_pref si la lg est spécifié dans l'url.
du coup, en faisant index.php?lg=truc, ma variable de sessions devient truc.
Sans rien faire d'autre, si j'actualise mon navigateur, la variable de session est perdue....

Une idée ??
Pour info, le site est hébergé dans un répertoire virtuel sur une machine mutualisée chez OVH....

Merci pour vos réponses !!!
midnighteleven est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 10h48   #2
fmdao
Membre actif
 
Avatar de fmdao
 
Inscription : novembre 2010
Messages : 86
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 86
Points : 162
Points : 162
Code :
$_SESSION['langue_pref'] =  $langue_pref
Il sort d'où $langue_pref ?
fmdao est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 12h04   #3
midnighteleven
Invité de passage
 
Homme
Développeur Web
Inscription : octobre 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2012
Messages : 7
Points : 1
Points : 1
Oui effectivement, il y'a $langue_pref qui est initialisé en début de fichier; j'ai du supprimer la ligne sans faire gaffe. Voici le code complet

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
session_start(); 
 $langue_pref = 'FR',
 
if ((isset($_GET['lg']))) {
	$_SESSION['langue_pref'] = $_GET['lg'] ;
}
 
if (!isset($_SESSION['langue_pref']) && empty($_SESSION['langue_pref'])  ) { 
$_SESSION['langue_pref'] = $langue_pref ;	
}
 
 
print_r($_SESSION);
?>
midnighteleven est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 12h09   #4
Celira
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 4 280
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java
Secteur : Industrie

Informations forums :
Inscription : avril 2007
Messages : 4 280
Points : 8 409
Points : 8 409
Sauf erreur de ma part, empty gère le cas !isset, donc tu peux simplifier ta condition en :
Code :
1
2
3
if (empty($_SESSION['langue_pref'])  ) { 
    $_SESSION['langue_pref'] = $langue_pref ;	
}
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [CODEINLINE=php][/CODEINLINE]
Celira est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 12h13   #5
midnighteleven
Invité de passage
 
Homme
Développeur Web
Inscription : octobre 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2012
Messages : 7
Points : 1
Points : 1
Oui je suis d'accord avec toi, mais cela ne change rien à mon problème.
J'ai rajouté cette condition supplémentaire au cas ou.

Initialement, j'avais bien cette condition :

Code :
1
2
3
if (empty($_SESSION['langue_pref'])  ) { 
    $_SESSION['langue_pref'] = $langue_pref ;	
}
midnighteleven est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2012, 14h23   #6
redoran
Membre émérite
 
Avatar de redoran
 
Homme Redouane Hamadouche
Développeur-Amateur
Inscription : juin 2010
Messages : 1 326
Détails du profil
Informations personnelles :
Nom : Homme Redouane Hamadouche
Âge : 41
Localisation : Algérie

Informations professionnelles :
Activité : Développeur-Amateur
Secteur : Santé

Informations forums :
Inscription : juin 2010
Messages : 1 326
Points : 985
Points : 985
Envoyer un message via Skype™ à redoran
salut;
Citation:
Mon code fonctionne sur plusieurs serveurs sur lequel j'ai fait des tests mais par sur celui de mon client.
est ce que t'a un message d'erreure !!!
var_dump($langue_pref ) sa donne quoi ?
redoran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2012, 15h39   #7
greg91
Membre régulier
 
Avatar de greg91
 
Homme
Indep Web
Inscription : novembre 2007
Messages : 68
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Indep Web

Informations forums :
Inscription : novembre 2007
Messages : 68
Points : 83
Points : 83
Penche toi sur l'environnement du serveur de ton client :

-Quelle est le niveaux d'erreur pour le log PHP
-Le PHP crache t-il des messages (si il est bien configuré)
-Les sessions fonctionnent t-elles dans d'autres scripts du vhost ? (partition du hdd full)
-T'a pas un header('Location :xxxxx'); sans exit(); tout de suite après ? Le comportement peut différer d'un serveur à l'autre dans ce cas.
greg91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 11h14   #8
midnighteleven
Invité de passage
 
Homme
Développeur Web
Inscription : octobre 2012
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2012
Messages : 7
Points : 1
Points : 1
Bonjour à tous et merci pour vos réponses.

En fait, ça ne venait pas de mon dév. mais de l'herbergeur. Il rencontrait des problèmes avec le load balancing des serveurs et du coup la session était shootée automatiquement.
midnighteleven 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 14h33.


 
 
 
 
Partenaires

Hébergement Web