2011-03-18 1 views
0

J'ai une connexion websocket du navigateur à un script php s'exécutant en tant que serveur Websocket sur CLI.Partager l'ID de session de l'interface de ligne de commande vers le navigateur

J'ai le client envoie son session_id qui était sur le serveur je sais quel utilisateur a quelle session.

Cela fonctionne parfaitement pour lire le $ _SESSION des utilisateurs individuels.

je fais (sur le côté serveur [mon code CLI]):

$sess_ini = ini_get('session.save_path'); 
$save = file_get_contents("$sess_ini/sess_$sessionID"); 
session_id($sessionID); 
$sessions = explode("|",$save); 
$_SESSION['values'] = (isset($sessions[1])? 
         unserialize(trim(urldecode($sessions[1]))):array()); 

Puis, quand je manipule _SESSION $ [ 'valeurs'] sur le côté serveur CLI qu'il ne soit pas réfléchi sur la session client et la session n'est pas manipulée. comment puis-je faire pour que la session manipulée soit renvoyée au client?

Merci!

+0

Comment obtenez-vous le $ sessionID ?. Je ne peux pas le faire fonctionner .... Le CLI sessionID est différent du Web sessionID – boyd

Répondre

0

Il y avait une erreur dans mon code.

La session était en cours d'enregistrement, j'ai juste négligé de la sortir avant qu'elle ne soit changée, donc il semble qu'elle n'ait jamais changé.

0

Vous pouvez écrire sessionId aux utilisateurs table DB
Et que dans CLI et Web votre devez utiliser:

session_id($sessionFromDb); 
+0

non non. Je suis en mesure d'obtenir la session. C'est très bien. mais le changer pour qu'il reflète sur le côté client ne fonctionne pas – Neal

+0

Vous pourriez utiliser ce http://ru.php.net/session_write_close, ou peut-être pas d'autorisations pour écrire le fichier de session? – azat

+0

Et, êtes-vous sûr que dans Web et CLI sessionId n'est pas différent? – azat

Questions connexes