Page 1 sur 1

Probleme de variables de session avec include...

Posté : 16 oct. 2005, 06:07
par FAbimoi
Bonjour...
Alors voila j'ai un petit probleme.
Je crée une session, instancie des variables qui sont bien prises en compte et présentes dans le fichier de session présent sur le serveur...
Seulement, je n'arrive pas à accéder à ces variables depuis un fichier que je met en include....
La première page a accès aux variables de session mais pas les includes.....
Je ne sais plus comment faire... :?: :?: :?: :?:
Si vous avez quelques idées, je suis preneur....
Merci....

Posté : 16 oct. 2005, 06:10
par Xenon_54
Bonjour,

Est-ce que l'on pourrait avoir un extrait de ton code? À savoir:
- La démarrage de la session;
- l'affectation des variables;
- la récupération de ceux-ci;
- la manière dont tu fais l'include;
- Etc.

Cela nous aidera à résoudre le problème.

;)

Posté : 16 oct. 2005, 06:27
par FAbimoi
Wi bien sûr...
Alors, pour ma session je la commence bien au début de mon code...
<?php
	session_start();
?><html....
Pour l'instanciation de mes variables ça donne ça
<?php
$_SESSION['vote']=1;
?>
les include:
<?php
	include "inc/page/menu_haut.inc.php";
?>
ou
<?php
	// Module de navigation rapide
	include ($root."inc/module/quick_nav.inc.php?root=".$root);
?>
Ensuite pour m'en servir:
c'est du genre
<?php
echo $_SESSION['vote'];// Mais là j'ai un message d'erreur qui me dit
?>

Notice: Undefined variable: _SESSION in g:\easyphp1-8\www\mon_site\inc\contenu\home.inc.php on line 4...

Posté : 16 oct. 2005, 06:34
par FAbimoi
En fait je met en place un petit sondage, le formulaire validé, il est soumis a un fichier valid_vote.php qui me crée $_SESSION['vote'] à 0 ou 1 puis fait une redirection vers le referer(mon index, qui gère tous les contenus grâce à des includes)...

Mes variables de session sont accessibles pour cet index, j'ai essayé en faisant echo $_SESSION['vote']; qui existe bien et est à la bonne valeur selon la situation...

Simplement les fichiers inclus dans cet index n'arrivent pas à accéder à ces variables.... Le meme echo $_SESSION['vote']; dans un fichier inclus me retourne le message d'erreur....

Posté : 16 oct. 2005, 06:38
par Xenon_54
Est-ce que ton fichier index possède lui aussi un session_start()?
Car je viens de tester à l'instant et lorsque la session n'est pas démarrée, la variable $_SESSION n'existe pas.

Donc place session_start() dans chaque page qui utilise les sessions.

;)

Posté : 16 oct. 2005, 06:55
par FAbimoi
Mon index a bien un session_start(); tout au début...

J'ai tourné en rond toute la nuit mais la je vois vraiment plus....

J'ai essayé en faisant des session_start() dans mes includes mais c pas une bonne idée, ça me crée une autre session a chaque session_start().......

Posté : 16 oct. 2005, 06:56
par FAbimoi
D'ailleurs je trouve ça étonnant, je croyais que ça devais renvoyer un message d'erreur de vouloir relancer une session si une existe déja.....

Posté : 16 oct. 2005, 06:58
par Invité
Le début de mon index est comme ça:
<?php
	session_start();
	if(!isset($_SESSION['vote'])){$_SESSION['vote']=0;}
	include "inc/connect.inc.php";
	include "inc/global_vars.inc.php";
	include "inc/fonctions.inc.php";
	$root=global_var('root');
?>
<!DOCTYPE html PUBLIC "-//W3...

Posté : 16 oct. 2005, 07:16
par FAbimoi
Je viens de voir que je fais mes includes en chemin absolu.....
Peut etre le probleme viens de là....
Vais essayer en chemin relatif....

Posté : 16 oct. 2005, 07:36
par FAbimoi
Le problème viens bien de là......
Maintenant faut que je repense la façon d'accéder à mes fichiers en relatif....
Du coup plus rien ne fonctionne sauf ce qui ne fonctionnais pas avant....
C'est au moins un problème de résolu.... :) :lol: :D :langue:

Bon les choses à retenir c'est:

Pour passer des paramètres à un fichier include il faut un chemin absolu:
<?php
      include "http://www.monsite.com/include.php?variable=toto";
?>
Simplement celui ci n'aura pas accès aux variables de session... :?
Le serveur le prend comme une requete externe et c'est d'ailleurs pour ça qu'en faisant un session_start() dans mes include il me créait d'autres sessions et ne me renvoyait pas de message d'erreur.... :D

La ça ne marche tout simplement pas:
<?php
      include "inc/include.php?variable=toto";
?> 
On ne peut pas passer de paramètres par l'URL en chemin relatif à un include.


Là ça marche et on a accès aux variables de session(mais pas de passage de paramètres par l'URL... Donc dans mon cas je vais me servir de mes variables de session pour remplacer les paramètres d'URL :wink: ):
<?php
      include "inc/include.php";
?> 
Voila si j'ai bien compris c'est ça....
J'espère ne pas me tromper et si ça peut aider des pauvres gens comme moi qui passent des nuits blanches sur des choses aussi simples.... :sleeping:

Voila...Bein je m'y remet...Y'a du boulot...

Posté : 25 juin 2006, 16:31
par Invité
Le problème viens bien de là......
Maintenant faut que je repense la façon d'accéder à mes fichiers en relatif....
Du coup plus rien ne fonctionne sauf ce qui ne fonctionnais pas avant....
C'est au moins un problème de résolu.... :) :lol: :D :langue:

Bon les choses à retenir c'est:

Pour passer des paramètres à un fichier include il faut un chemin absolu:
<?php
      include "http://www.monsite.com/include.php?variable=toto";
?>
Simplement celui ci n'aura pas accès aux variables de session... :?
Le serveur le prend comme une requete externe et c'est d'ailleurs pour ça qu'en faisant un session_start() dans mes include il me créait d'autres sessions et ne me renvoyait pas de message d'erreur.... :D

La ça ne marche tout simplement pas:
<?php
      include "inc/include.php?variable=toto";
?> 
On ne peut pas passer de paramètres par l'URL en chemin relatif à un include.


Là ça marche et on a accès aux variables de session(mais pas de passage de paramètres par l'URL... Donc dans mon cas je vais me servir de mes variables de session pour remplacer les paramètres d'URL :wink: ):
<?php
      include "inc/include.php";
?> 
Voila si j'ai bien compris c'est ça....
J'espère ne pas me tromper et si ça peut aider des pauvres gens comme moi qui passent des nuits blanches sur des choses aussi simples.... :sleeping:

Voila...Bein je m'y remet...Y'a du boulot...