2011-07-03 3 views
0

Je passe mon ID de session à travers un fichier flash dans un fichier php et je capture l'ID de session de l'autre côté et remplace l'ID nouvellement généré par l'ancien.La session PHP perd des informations

$SID = $_GET['mysession']; 
session_id($SID); 
session_start(); 

Malheureusement, la session est maintenant vide et je ne comprends pas pourquoi.

print_r($_SESSION); 

renvoie simplement 1. Toutes les variables de la session sont vides/inexistantes.

Quelqu'un a-t-il une idée de comment attraper les données à nouveau?

Version PHP 5.2.6-1 + lenny12 avec Apache.

Merci David

+0

Avez-vous vérifié que la valeur de $ SID est cohérente? –

+0

Cette odeur de vulnérabilité de fixation de session! –

+0

$ SID est cohérent. C'est exactement la même chose que dans get et cookie value. – David

Répondre

0

Je pense que vous devez utiliser session_start(); avant de définir quoi que ce soit dans la session.

+0

C'est vrai. session_start(); besoin d'être sur le dessus – Fredrik

+0

Malheureusement, cela ne fait aucune différence dans le résultat. Toujours pas de valeur dans la session. – David

0

utiliser comme ceci,

session_start(); 
$SID = $_GET['mysession']; 
session_id($SID); 

Cela dit, la session permet la manipulation sur cette page et démarre une session. après cela, vous récupérez votre identifiant de session précédent et vous attribuez le même identifiant de session à cette session. Espérons, ça vous aide.

+0

s'il vous plaît ne répondez pas sans test. essayez-le avant de répondre à la réponse non utile. –

+0

si vous appelez session_id avant session_start, il ne vous retournera rien. –

Questions connexes