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 24/09/2007, 16h50   #1
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 33
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 33
Points : 11
Points : 11
Par défaut Mes variables de session ne sont pas conservées

Bonjour,

J'utilise une variable de session dans un fichier index.phtml comme suivant:


Code :
1
2
3
$a=$_GET['i'];
$_SESSION['map']=$a;
require_once ("properties.inc");
je récupère la variable $i via l'URL en GET, ensuite grâce au require_once j'appel une page properties.inc qui utilise la variable de session.

Le problème c'est que si j'essaye d'utiliser cette variable de session dans une tiers page, ça ne fonctionne pas et un test avec isset() me renvoie false.
Ma variable de session ne fonctionne donc pas. Pourtant ds chaque script qui utilise $_SESSION['map'], je place bien session_start();

Problème de conf du php.ini???

Comment interpréter cette erreur:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
emilek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 17h01   #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
Ca veut dire que tu as deja écrit quelque chose avant de créer ta session. (comprendre que tu as deja envoyé des données vers le navigateur).

A notre que le session_start() doit etre placé avant toute écriture (meme un espace). En gros comme ceci:
Code :
1
2
3
4
 
<?php
session_start();
....
A notre aussi, car je ne sais pas si tu l'as fait, que tu n'as pas besoin de remettre un session_start() dans properties.inc vu que tu l'as deja fait avant le require.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 17h34   #3
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 33
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 33
Points : 11
Points : 11
ok pour le message d'erreur.
Seulement ça ne résoud pas mon problème de tiers page qui ne veut pas reconnaître la variable de session...
emilek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 18h15   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Ben ca dépend si tu as corrigé l'erreur de header deja?
si non, c'est normal puisqu'il ne crée pas la session il ne risque pas de la reconnaitre dans les autres scripts
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2007, 18h23   #5
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 33
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 33
Points : 11
Points : 11
Bien sur j'ai corrigé cette erreur!!!

voilà le script de ma première page

Code :
1
2
3
4
5
6
7
 
<?php session_start();?>
<?php
$a=$_GET['i'];
$_SESSION['map']=$a;
require_once ("properties.inc");
require_once ("try.php");
dans mon properties.inc j'utilise la variable de session
Code :
<?php $properties["winMapFile"]="C:/apache2/htdocs/veremap_brg/map_brg/".$_SESSION['map'].".map";?>

et un tiers fichier utilise le properties .inc

Code :
1
2
3
4
5
6
<?php session_start();?>
<?php
if(isset($_SESSION['map'])){
echo "ok";} else{
echo "no ok"}
require_once ("properties.inc");
Seulement ce fichier ne reconnaît pas la variable de session et renvoie "no ok".

Je me fais comprendre ou bien?
emilek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 16h57   #6
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 33
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 33
Points : 11
Points : 11
Par défaut solution

Dans toutes les situations, il ya une solution...

Bon je ne sais pas si ça interessera quelqu'un, mais je me suis dépatouiller de ce foutu bourbier...
J'avais hommis de parler des frames que j'utilise dans mon appli...D'où mon problème de transmission de session...

POur faire cour, quand utilisation de frame il faut passer les variables de cette façon:
Code :
1
2
<iframe src="frame.php?post=$_POST"></iframe>
Ainsi dans le code de l'iframe, $_GET['post'] contiendrait tes variables $_POST dans l'array
Voilà, sinon pas possible de transmettre une variable de session de page en page. Voilà pourquoi dans ma troisième page je ne pouvais pas utiliser ma variable de session...
Merci à ceux qui ont répondu...
emilek 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 00h01.


 
 
 
 
Partenaires

Hébergement Web