Rechercher : dans
Par :

Problème de passage de variable session

Dernière réponse le 18 jun 2009 à 11:24:41 david11001, le 16 jun 2009 à 17:17:35 
 Signaler ce message aux modérateurs

Salut !
J'ai un petit problème, ma session ne se transmet pas d'une page à l'autre.
Rien de mieux qu'un exemple pour comprendre :

Voici ma page "codesource.php" :

<code type="php"><?php
session_start();
$_SESSION['test']="salut !";
echo "Voici le code surce de la page affichage.php : <br>".file_get_contents("http://www.monnomdedomaine.fr/affichage.php");
?></code>

Et ma page "affichage.php" :

<code type="php"><?php
session_start();
echo $_SESSION['test'];
?></code>

Le problème, c'est que quand j'affiche la page "codesource.php", la variable $_SESSION['test'] ne s'affiche pas...

J'ai pourtant fait le session_start et défini la variable avant de l'appeler sur l'autre page. Que se passe t-il ?

Merci d'avance !

Meilleures réponses pour « Problème de passage de variable session » dans :
[Windows] Mot de passe de session perdu ou oublié Voir Cette astuce vous aidera si vous avez perdu votre mot de passe de session. Cette méthode fonctionne jusqu'à Windows 2000, mais pas (ou plus ?) XP. Si vous n'êtes pas l'administrateur du système Il est nécessaire de demander à l'administrateur de...
ASP - L'objet Session VoirIntroduction aux sessions Le protocole HTTP est un protocole non connecté (on parle aussi de protocole sans états, en anglais stateless protocol), cela signifie que chaque requête sur une page web est traitée indépendamment des autres et qu'aucun...

1

giheller, le 16 jun 2009 à 17:56:26

Bonsoir,

chez moi cela fonctionne avec :
<code type="php"><?php

$_SESSION['test']="salut !";
echo "Voici le code surce de la page affichage.php : <br>";
include ('session2.php');
//("http://www.monnomdedomaine.fr/affichage.php");
?></code>
--------------------------------------
<code type="php"><?php

echo $_SESSION['test'];
?></code> ------------------------------------------------
J-L

Répondre à giheller

2

david11001, le 16 jun 2009 à 20:42:37

Ce serait effectivement une bonne solution mais je ne peux pas faire ça.
Il faut absolument que je récupère la page sans l'inclure dans mon code. (je ne vous explique pas pourquoi, ça risque d'être long et totalement inutile) La seule solution est de passer les données d'une page à l'autre sans qu'il y ait de rattachement entre les 2. Je peux peut-être passer par la bdd mais ça ne m'arrange donc je préfererai trouver un moyen de faire fonctionner celui-ci.

En tout cas, merci de ta proposition !

Répondre à david11001

3

le père, le 17 jun 2009 à 00:12:21

Bonjour

Je pense que tu ne récupères pas la variable de session parce que le script de la page 1 n'étant pas terminé quand tu appelles la page 2, les variables de session ne sont pas encore enregistrées. Elles ne sont effectivement enregistrées (je ne suis pas sûr à 100%, mais il me semble) qu'à la fin du script.
Mais tu peux passer ta variable par l'URL - si elle n'est pas trop compliquée.
Ou alors, essaye un session_write_close(); juste avant de faire appel à ta 2 ème page.

Répondre à le père

4

david11001, le 17 jun 2009 à 14:12:17

Le session_write_close(); ne fonctionne malheureusement pas...
Et passer les variables par l'url seraient une bonne idée (fonctionnement garanti !) mais mes variables contiennent des scripts en php assez long, donc pas trop possible de les passer...

Répondre à david11001

5

le père, le 17 jun 2009 à 14:34:21

Solution pas très élégante :
Au fond..
Pourquoi ne te contentes-tu pas d'un simple header("Location: http://www.monnomdedomaine.fr/affichage.php"); comme tout le monde ?

Répondre à le père

6

le père, le 17 jun 2009 à 14:36:18

J'ai oublié d'effacer le "solution pas très élégante", j'avais une idée farfelue en tête. Mais la version avec header("Location...) n'a rien d'inélégant

Répondre à le père

7

 giheller, le 18 jun 2009 à 11:24:41

Bonjour,

alors peut être faut-il utiliser le passage de la variable vie la method GET
<code type="php"><?php
$message="salut !";
echo "Voici le code surce de la page affichage.php : <br>".file_get_contents("http://www.monnomdedomaine.fr/affichage.php?message=".$message);
?></code>

Et ma page "affichage.php" :

<code type="php"><?php

echo $_GET[message];
?></code>

------------------------------------------------
J-L

Répondre à giheller