2009-03-02 14 views
4

J'essaie d'implémenter un uploader Flash dans mon application framework Zend mais j'ai des problèmes avec la session.zend framework perdre session

Le Flash n'envoie aucun en-tête de cookie et c'est pourquoi la session est perdue. J'essaye d'envoyer le sessionId en tant que paramètre de post et dans mon fichier de bootstrap j'ai ajouté un session_id ($ _ POST ['session_id]) mais cela semble fonctionner.

J'utilise une table MySQL en tant que stockage de session

I tryed pour déboguer l'erreur et pour autant que je vois, le session_id est réglé, et le stockage renvoie les données corect de la base de données mais il n'a pas semblent être correctement définies dans le $ _SESSION global.

Et même plus étrange, il semble fonctionner sur mon ordinateur Windows mais pas sur le serveur de stockage Linux.

Répondre

4

Savez-vous si vous utilisez Suhosin avec votre installation de PHP?

J'ai entendu un few reports de Suhosin faire cela aux sessions, la solution dans ce cas est de désactiver suhosin.session.cryptua dans php.ini.

Quoi qu'il en soit, si ce n'est pas votre problème, juste pour être sûr avec les bases:

  1. Assurez-vous que vous passez votre session_id() dans un poste de Flash, par exemple, avec SWF Upload, cela se fait en passant dans la valeur post_params du tableau de configuration.
  2. Assurez-vous que vous appelez session_id($_POST['session_id]) avant session_start()

Mais de toute façon, il est probablement lié à votre installation de PHP si vous dites cela fonctionne dans votre environnement Windows.

+0

merci qui était le problème –

+0

Cela a fonctionné pour moi aussi. Merci. –

0

Effectuez les opérations suivantes dans votre action de contrôleur:

session_write_close(); 
session_id($this->_getParam('PHPSESSID')); 
session_start();