OVH Community, votre nouvel espace communautaire.

Problème avec une variable SESSION quand l’application est mise sur le serveur


nafix
03/02/2008, 10h52
Je pense avoir trouvé l’origine de mon problème.

A certains endroits j’avais une écriture du type :
$_SESSION['origine']="webmaster";

A travers cette écriture je voulais donner la valeur (uniquement le code texte) webmaster à la variable SESSION['origine']. Vous allez me dire qu’il est préférable d’écrire $_SESSION['origine']=’webmaster’ ; Oui c’était certainement l’origine de mon bug car dans mon programme j’avais une de mes tables de ma base de données qui portait le nom webmaster.

J’ai repris l’écriture de mes variables, les guillemets ont été remplacés par de simples ‘’ (quand c’était possible). J’ai donné des noms de variables différents des noms de tables SQL, etc… Depuis tout marche bien en local comme sur le serveur.

nafix
01/02/2008, 17h38
Tout d’abord merci pour votre réponse Sébastien.

Je pense effectivement qu’il doit y avoir un problème avec le nom d’une variable, il y a certainement un truc comme ça.

Coté session start() je suis certain. Il ne manque rien.

Je ne souhaite pas trop modifier la configuration du register_global. Je ne suis pas un expert et j’ai un peu peur de casser des fonctions existantes. Beaucoup d’utilisateurs enregistrent des informations personnelles, je ne souhaite pas trop planter le système.


Piste que je n’ai pas étudiée : Pour me connecter je passe par une page de connexion. Je pense que l’origine du problème est dans cette page de connexion car si je supprime le module : restreindre l’accès à la page (fonction Dreamweaver) :
• Je ne passe pas par la page de connexion
• Le bug disparaît.

Sébastien Ferry
01/02/2008, 14h22
Une idée : ça vient peut-être des register global, et donc, d'une variable dans le script qui porterait le même nom que la variable de session.

Chez OVH l'option register_globals est on par défaut (au moins dans mes souvenirs): http://fr.php.net/register_globals[INDENT]Lorsqu'elle est activée, register_globals va injecter vos scripts avec toutes sortes de variables, comme les variables issues des formulaires HTML[INDENT]

http://guides.ovh.com/ConfigPhp
Code:
SetEnv REGISTER_GLOBALS 0
C'est une idée à froid.

Une autre idée: il ne manque pas un session_start(); quelque part?

C'est encore une idée à froid...

nafix
31/01/2008, 23h44
Bonjour,

Depuis plusieurs jours j’ai un problème avec une variable $_SESSION et je n’arrive pas trouver une logique et une solution au bug obtenu. Une explication simplifiée de mon bug pourrait être :

1°) Page d’accueil :
a) Je charge la variable $_SESSION['origine']=’webmasters’;
b) Je charge la variable $_SESSION['mavariable']=1234;
c) J’ai le lien pour aller sur la PAGE TRAVAIL

2°) PGE TRAVAIL
a) Je charge $_SESSION['mavariable']=2222;
b) J’ai le lien pour aller sur la PAGE VISUALISATION

3°) PAGE VISUALISATION
a) J’affiche $_SESSION['mavariable']

Résultats obtenus :

a) En mode local, sur mon PC je n’ai aucun problème. Tout marche bien. Dans la page visualisation j’ai la valeur 2222 qui est affichée.

b) Mis sur le serveur la variable $_SESSION['mavariable'] à :
La valeur 2222 dans la page travail
La valeur 1234 dans la page visualisation

A près plusieurs heures de tests j’ai remarqué (je ne vois pas de rapport et je ne m’explique pas pourquoi) que si je change quelque chose dans : $_SESSION['origine']=’webmasters’ du type :

$_SESSION['origine']="webmastxxx"
ou
$_SESSION['origixx']="webmasters"

tout redevient normal.

Le problème est identique sur IE et FireFox.
J’utilise un module restreindre l’accès à la page
Si je le module restreindre l’accès à la page et supprimé, le bug disparaît.
Ce n’est pas ma première application. D’autres applications fonctionnent sans problème
Mon métier n’est informaticien.

Avez-vous une idée des conseils, etc.. ? Je ne comprends plus rien

Merci