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 12/03/2007, 10h37   #1
GYK
Membre du Club
 
Inscription : mai 2004
Messages : 317
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 317
Points : 44
Points : 44
Par défaut Transfert de variables

Bonjour,

J'ai un probleme de transert de variable de PHP appelant à PHP appelé.

Voici mes débuts de code.

PHP appelant:

Code :
1
2
3
4
5
6
7
8
9
 
<?php 
session_start();
$Mavariable = $_GET['Mavariable']; // Mavariable est bien renseigné (c'est pourquoi pas d'isset)
$_session['Mavariable']=$Mavariable;
.
.
.
<Form method="post" action="PHPappelé.php" >
PHP appelé

Code :
1
2
3
4
 
<?php 
session_start();
echo $Mavariable;
résultat:

Notice: Undefined variable: Mavariable in ....

Je précise que ma session est bien active et identifié car lorsque je fais un

Code :
1
2
3
 
$sess = session_name();
echo $sess;
dans mon PHP appelé j'obtiens:
PHPSESSID
(c'est le nom que j'ai dans mon PHP.ini)

Mes cookies sont bien acceptés

Avez vous une idée?

Merci
GYK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 10h40   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
dans le fichier appellé:
echo $_SESSION['Mavariable']; au lieu de echo $Mavariable
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 10h45   #3
GYK
Membre du Club
 
Inscription : mai 2004
Messages : 317
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 317
Points : 44
Points : 44
Merci Raideman

J'ai fais ca que tu m'as dit, voici l'erreur

Undefined variable: _session in ...
GYK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 10h47   #4
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
Dans ton code tu as écrit $_session en minuscule.

Attention à php qui est sensible à la casse : tente de le mettre en majuscule.
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 10h48   #5
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Bonjour,
Tu devrais aller faire un tour ici : http://php.developpez.com/faq/?page=sessions
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 10h54   #6
GYK
Membre du Club
 
Inscription : mai 2004
Messages : 317
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 317
Points : 44
Points : 44
Bonjour N1bus,
Dans ton tuto sur ton lien, il parle de session_register, mais j'ai lu que c'était obsolette?
GYK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 11h13   #7
GYK
Membre du Club
 
Inscription : mai 2004
Messages : 317
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 317
Points : 44
Points : 44
Bonjour Ratapapa,
Tu as raison, avec $_SESSION en majuscule je récupère mes variables,
Mais j'ai un autre problème, c'est que certaines variable sont renseignées plus loin dans le traitement donc je les initialisent avant:
exemple:
Code :
1
2
3
4
5
6
7
8
 
$Mavariable2 = 0;
$_SESSION['Mavariable2'] = $Mavariable2;
.
.
.
$nombre = mysql_fetch_array($recnbr, MYSQL_ASSOC);
$Mavariable2 = ($nombre['nombre']);
et la Mavariable2 garde sa valeur initiale et n'évolue pas?
Merci
A+
GYK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 11h59   #8
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
j'ai pas bien compris ton dernier probleme.
En gros pour les sessions, le mécanisme est le suivant:
tu fais session_start au début de toutes les pages qui ont besoin de gestion des sessions.
Ensuite il faut traiter la variable sessions comme une variable à part entière.
tu l'initialises comme ceci:
$_SESSION['variable']=$variable;
et du coup a chaque fois que tu changes $variable, il te faut mettre jour $_SESSION['variable'] ce qui donne

Code PHP :
1
2
3
4
5
 
$variable=0;
$_SESSION['variable']=$variable; //SESSION_['variable'] vaut 0
$variable=1 //SESSION['variable'] vaut toujours 0
$_SESSION['variable']=$variable; //SESSION_VARIABLE vaut 1 maintenat
des que tu veux détruire une variable de sessions:
unset($_SESSION['variable']);

Voila si ca peut t'aider.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 12h45   #9
GYK
Membre du Club
 
Inscription : mai 2004
Messages : 317
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 317
Points : 44
Points : 44
Merci Raideman,

J'ai trouvé une solution.
Je ne sais pas si elle est très orthodoxe, mais elle marche.
Je renseigne mes
$_SESSION['variable'] = $variable;
au fur et a mesure de mon traitement
Je récupère bien mes valeurs dans le PHP appellé
Moi je pensais que le fait de changer la valeur de la variable changeait automatiquement $_SESSION['variable'] = $variable;

A+
GYK est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h59.


 
 
 
 
Partenaires

Hébergement Web