zend framework perdiendo sesión
-
03-07-2019 - |
Pregunta
Estoy intentando implementar un cargador de Flash en mi aplicación Zend framework, pero tengo problemas con la sesión.
Flash no envía ningún encabezado de cookie y es por esto que se perdió la sesión. Estoy intentando enviar sessionId como param de publicación y en mi archivo de rutina de carga agregué un session_id ($ _ POST ['session_id]) pero parece que esto no funciona.
Estoy utilizando una tabla MySQL como almacenamiento de sesión
Intenté depurar el error y, por lo que veo, el session_id está configurado y el almacenamiento devuelve los datos correctos de la base de datos, pero no parece estar configurado correctamente en $ _SESSION global.
Y aún más extraño, parece funcionar en mi computadora con Windows pero no en el servidor de almacenamiento de Linux.
Solución
¿Sabe si está usando Suhosin con su instalación de PHP?
He escuchado un algunos informes de Suhosin haciendo esto en las sesiones, solución en este caso es deshabilitar suhosin.session.cryptua
en php.ini.
De todos modos, si ese no es tu problema, solo asegúrate de lo básico:
- Asegúrese de pasar su
session_id ()
en una publicación de su Flash, por ejemplo, con SWF Upload , esto se hace pasándolo enpost_params
valor de la matriz de configuración. - Asegúrese de llamar a
session_id ($ _ POST ['session_id])
antes desession_start()
Pero de todos modos, probablemente esté relacionado con su instalación de PHP si está diciendo que funciona en su entorno de Windows.
Otros consejos
Esto suena similar a varios errores que se han reportado a lo largo de los años, aunque en la mayoría de los casos funcionó en Linux y no en Windows.
http://framework.zend.com/issues/browse/ZF-2459 https://www.zend.com/en/ forums / index.php? t = msg & amp; goto = 16104 & amp; S = de7d9b854db445eb37d0f33470cac6b0
y tan recientemente como el mes pasado:
http://blog.rac.me.uk/2009/01/09/php-zend-session-dont-set-it-up-in-the-initalizer/
- MarkusQ
Intente lo siguiente en la acción de su controlador:
session_write_close();
session_id($this->_getParam('PHPSESSID'));
session_start();