Problème de passage de variable session

david11001 -  
giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   -
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("https://www.nordnet.com/site-internet");
?></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 !

7 réponses

giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
 
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');
//("https://www.nordnet.com/site-internet");
?></code>
--------------------------------------
<code type="php"><?php

echo $_SESSION['test'];
?></code>
0
david11001
 
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 !
0
le père
 
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.
0
david11001
 
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...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le père
 
Solution pas très élégante :
Au fond..
Pourquoi ne te contentes-tu pas d'un simple header("Location: https://www.nordnet.com/site-internet"); comme tout le monde ?
0
le père
 
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
0
giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
 
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("https://www.nordnet.com/site-internet".$message);
?></code>

Et ma page "affichage.php" :

<code type="php"><?php

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

0