Problème de sessions et variables

Petit nouveau ! | 8 Messages

16 juin 2010, 08:51

Bonjour,

j'ai un souci sur un script d'identification qui utilise les sessions.
Une fois les identifiants vérifiés, je déclare la variable de sessions "pseudo" qui contient donc le pseudo de la personne.

J'ai un gros problème si je fais :

Code : Tout sélectionner

session_start(); $pseudo=$_SESSION['pseudo']; $pseudo="stephanie"; echo"$_SESSION[pseudo]";
Disons que le pseudo passé en session soit "alexandre".
Le fait de déclarer la variable pseudo avec par exemple le prénom"stephanie" me remplace la variable de session.

Donc quand je fais un

Code : Tout sélectionner

echo"$_SESSION[pseudo]";
c'est "stephanie" qui s'affiche et plus "alexandre"

Auriez vous une explication ?

Eléphanteau du PHP | 40 Messages

16 juin 2010, 17:26

tu est sûr que tu change la valeur de $_SESSION['pseudo'] ?

Tu as essayer de vérifier en faisant :
session_start();
$pseudo=$_SESSION['pseudo']; 
echo"$_SESSION[pseudo]";

$pseudo="stephanie";

echo"$_SESSION[pseudo]";
Des icones, des RFC

Petit nouveau ! | 8 Messages

16 juin 2010, 17:56

C'est ce que j'ai fait,
la première fois, ça marque bien le pseudo enregistré en session, mais la deuxième, ça marque "stephanie" !

ViPHP
ViPHP | 1996 Messages

16 juin 2010, 22:07

Il y aurait bien une variable en mode global ou un truc du genre.
Essayes de changer avec $pseudo_a_mettre (en clair change la variable);
session_start();
$_SESSION['pseudo'] = "moi";
$pseudo_a_mettre =$_SESSION['pseudo'];
echo"$_SESSION[pseudo]";
// affiche "moi"

 $pseudo_a_mettre="stephanie";

echo"$_SESSION[pseudo]";
//affiche encore "moi"
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Petit nouveau ! | 8 Messages

17 juin 2010, 00:14

Oui, la ça fonctionne effectivement,
mais quand je donne une valeur à la variable $pseudo, ça remplace la valeur de session $_SESSION['pseudo']

Ca vient d'ou ? C'est normal ?
Si tu peux m'expliquer cette histoire de variable globale ça serait sympa.

Merci

ViPHP
ViPHP | 5462 Messages

17 juin 2010, 00:19

Oui, la ça fonctionne effectivement,
mais quand je donne une valeur à la variable $pseudo, ça remplace la valeur de session $_SESSION['pseudo']

Ca vient d'ou ? C'est normal ?
Si tu peux m'expliquer cette histoire de variable globale ça serait sympa.

Merci
t'as quelle version de php ? t'as le register_globals d'activé ? (tout ca c'est visible dans ton phpinfo)

Petit nouveau ! | 8 Messages

17 juin 2010, 00:26

J'ai la version : PHP Version 5.2.13

Et register_globals est sur ON

ViPHP
ViPHP | 5462 Messages

17 juin 2010, 00:36

J'ai la version : PHP Version 5.2.13

Et register_globals est sur ON
c'est pour ca, faut mettre sur off
http://www.php.net/manual/fr/security.globals.php

Petit nouveau ! | 8 Messages

17 juin 2010, 00:51

Je crois qu'on l'avais mis sur "ON" parce que j'avais une partie de mes pages qui ne définissait pas les variables (get ou post).
C'est a dire qu'en envoyant la variable "exemple" par un formulaire, je la récupérais uniquement en l'appelant : $exemple et non $_POST['exemple'].

Donc le fait que ça soit sur ON implique que le simple fait de nommer une variable par le nom d'une variable de session, remplace la variable de session ? Pas d'autre solution pour ce souci ?

Merci de ta réponse

ViPHP
ViPHP | 5462 Messages

17 juin 2010, 10:00

mettre sur Off, et corrigé les autres pages :wink:

Petit nouveau ! | 8 Messages

17 juin 2010, 12:34

Ok c'est clair !

Merci de tes réponses