2009-03-02 13 views
4

Ich versuche, einen Flash-Uploader in meinem Zend Framework-Anwendung zu implementieren, aber ich habe Probleme mit der Sitzung.zend Framework Sitzung verlieren

Der Flash sendet keine Cookie-Header und deshalb ist die Sitzung verloren. Ich versuche, die SessionId als Post-Parameter zu senden, und in meiner Bootstrap-Datei habe ich eine Session-ID ($ _ POST ['Session_ID]) hinzugefügt, aber das scheint zu funktionieren.

Ich verwende eine MySQL-Tabelle als Session-Speicher

ich den Fehler zu debuggen tryed und soweit ich sehe, wird die session_id gesetzt und die Speicherung gibt die corect Daten aus der Datenbank, aber es funktioniert nicht scheinen im $ _SESSION global richtig eingestellt zu sein.

Und noch seltsamer scheint es auf meinem Windows-Computer zu funktionieren, aber nicht auf dem Linux-Staging-Server.

Antwort

4

Sie wissen Sie, wenn Sie Suhosin mit Ihrer PHP-Installation verwenden?

Ich habe eine few reports von Suhosin gehört, dies zu den Sitzungen zu tun, Lösung ist in diesem Fall zu deaktivieren suhosin.session.cryptua in php.ini.

Wie auch immer, wenn das nicht Ihr Problem ist, nur sicher zu sein, mit den Grundlagen:

  1. Achten Sie darauf, Ihren Pass session_id() in einem Beitrag von Flash zum Beispiel mit SWF Upload, dies, indem erfolgt es in post_params Wert des Konfigurationsarrays.
  2. Stellen Sie sicher, session_id($_POST['session_id]) vor session_start()

Aber wie auch immer nennen, ist es wahrscheinlich zu Ihrer PHP-Installation verbunden, wenn Sie sagen, es unter Ihrer Windows-Umgebung funktioniert.

+0

danke das war das Problem –

+0

Auch das für mich gearbeitet. Vielen Dank. –

0

Versuchen Sie Folgendes in Ihrer Controller-Aktion:

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