Foros del Web » Programando para Internet » PHP » Symfony »

Session en dev de Symfony2

Estas en el tema de Session en dev de Symfony2 en el foro de Symfony en Foros del Web. Hola a todos, Sigo con mi proyecto con Symfony2 y ahora me ha tocado pegarme con las sesiones y el problema que tengo es muy ...
  #1 (permalink)  
Antiguo 18/01/2013, 04:24
 
Fecha de Ingreso: enero-2012
Mensajes: 64
Antigüedad: 12 años, 4 meses
Puntos: 0
Exclamación Session en dev de Symfony2

Hola a todos,

Sigo con mi proyecto con Symfony2 y ahora me ha tocado pegarme con las sesiones y el problema que tengo es muy curioso, ya que la aplicación funciona perfectamente en producción pero cuando me voy al entorno de desarrollo me lanza esto:

An exception has been thrown during the rendering of a template ("Notice: A session had already been started - ignoring session_start() .

¿Hay que configurar algo en el config_dev.yml o algo?

Mi código de prueba de sesiones de momento es sólo esto:

Código PHP:
//New session objects
        
$storage = new NativeSessionStorage(array(), new NativeFileSessionHandler());
        
$session = new Session($storage);
        
        
//Session start
        
$session->start();
        
//Check session time (if the session expired empty the cart - TimeSet:30min:1800s)
        
if (time() - $session->getMetadataBag()->getLastUsed() > 1800) {
            
$session->invalidate();
        }
        
        if(!
$session->get('prueba')){
            
$session->set('prueba',$postData);
        }else{
            
$prueba $session->get('prueba');
            
print_r($prueba);
        } 
Esto es un método que le llamo desde otra acción llamada previamente desde el botón de un formulario (lo que pretendo hacer es iniciar sesión y guardar atributos de sesión cuando se le de al botón).

Gracias de antemano.
  #2 (permalink)  
Antiguo 18/01/2013, 05:32
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Session en dev de Symfony2

Es un problema de Symfony, no comprueba si la session ya ha sido iniciada, te sugiero que en vez de crear una nueva session utilices la ya trae el fw, http://symfony.com/doc/current/book/...ng-the-session

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 18/01/2013, 06:05
 
Fecha de Ingreso: enero-2012
Mensajes: 64
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Session en dev de Symfony2

Gracias!

He probado a usar lo que me has recomendado y al cambiar el session->start(); por lo que ahí viene, me salta esto:

Fatal error: Call to a member function get() on a non-object in C:\xampp\htdocs\bauldeneni\vendor\symfony\symfony\ src\Symfony\Bundle\FrameworkBundle\Controller\Cont roller.php on line 179

Aprovecho para aclarar una duda, ¿Symfony entonces siempre tiene una sesión activa? Lo digo para poder controlar el tiempo de sesión etc, tal y como hago en el código que he puesto antes.

Gracias nuevamente.
  #4 (permalink)  
Antiguo 18/01/2013, 12:16
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Session en dev de Symfony2

muestra el código de lo que estas haciendo, porque el error dice que no encuentra el objeto hiciste esto
Código PHP:
Ver original
  1. $session = $this->getRequest()->getSession();
antes de llamar al método $session->get() ??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 18/01/2013, 21:52
 
Fecha de Ingreso: diciembre-2011
Mensajes: 408
Antigüedad: 12 años, 4 meses
Puntos: 18
Respuesta: Session en dev de Symfony2

Cita:
Iniciado por Luvelnet Ver Mensaje
Gracias!

He probado a usar lo que me has recomendado y al cambiar el session->start(); por lo que ahí viene, me salta esto:

Fatal error: Call to a member function get() on a non-object in C:\xampp\htdocs\bauldeneni\vendor\symfony\symfony\ src\Symfony\Bundle\FrameworkBundle\Controller\Cont roller.php on line 179

Aprovecho para aclarar una duda, ¿Symfony entonces siempre tiene una sesión activa? Lo digo para poder controlar el tiempo de sesión etc, tal y como hago en el código que he puesto antes.

Gracias nuevamente.
symfony siempre tiene una session activa solo basta con ver el profile
  #6 (permalink)  
Antiguo 19/01/2013, 06:22
 
Fecha de Ingreso: enero-2012
Mensajes: 64
Antigüedad: 12 años, 4 meses
Puntos: 0
Busqueda Respuesta: Session en dev de Symfony2

Gracias a los dos por responder!

Esta es la función, en la cual pretendo validar que la session no se ha pasado de tiempo, si es así que la reinicie. Solo eso.

Código PHP:
public function checkAction($postData){
        
        
//New session objects
        
$storage = new NativeSessionStorage(array(), new NativeFileSessionHandler());
        
$session = new Session($storage);
        
        
//Session start
        //$session = $this->getRequest()->getSession();
        
        //Check session time (if the session expired empty the cart - TimeSet:30min:1800s)
        
if (time() - $session->getMetadataBag()->getLastUsed() > 1800) {
            
$session->invalidate();
        }

Gracias!!
  #7 (permalink)  
Antiguo 03/02/2013, 13:42
 
Fecha de Ingreso: enero-2012
Mensajes: 64
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Session en dev de Symfony2

¿Alguien me puede responder porque me puede dar este error?

En desarrollo aún no puede testear la aplicación porque al usar el session->start() me sigue dando el error, pero es que si pongo la otra setencia me salta el error del controller.

Gracias!!!

Etiquetas: frameworks-y-php-orientado-a-objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:05.