Foros del Web » Programando para Internet » PHP »

session_start() más de una vez en la misma página...Se puede?

Estas en el tema de session_start() más de una vez en la misma página...Se puede? en el foro de PHP en Foros del Web. Qué tal. No voy a entrar en detalles, pero por x circuncstancia, en algunas de mis páginas php es probable que exista más de una ...
  #1 (permalink)  
Antiguo 28/06/2007, 08:00
 
Fecha de Ingreso: enero-2006
Ubicación: Maracay, Edo. Aragua
Mensajes: 206
Antigüedad: 18 años, 10 meses
Puntos: 0
Pregunta session_start() más de una vez en la misma página...Se puede?

Qué tal.

No voy a entrar en detalles, pero por x circuncstancia, en algunas de mis páginas php es probable que exista más de una vez el session_start()

¿Por qué?

Bueno, el que siempre se llama es el de instanciación de la clase Acceso, en el archivo acceso.php, que valida en cada página que el usuario esté logueado.

Pero resulta que algunas veces necesito instanciar otras clases que están en archivos distintos (otraclase.php) y en algunas de estas clases es necesario que el usuario esté logueado, por lo tanto debo colocar, por si acaso, el session_start()

Se me han presentado varios casos en los que en una página tengo más de un session_start, pero no vale la pena ahondar en el asunto; hasta ahora en mi servidor local no me da error, es decir, todo va bien, la cosa es....

1) ¿Está bien hecho esto?

2) ¿no va a dar problemas cuando lo suba al servidor de mi proveedor de hosting?

Saludos
  #2 (permalink)  
Antiguo 28/06/2007, 08:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: session_start() más de una vez en la misma página...Se puede?

Puede que si tienes E_STRICT te marque un warning o un notice de que ya se inicio la session, asi que no es lo mas recomendable, si realmente quieres hacer eso es mejor que hagas algo asi:
Código PHP:
if( empty(session_id()) ) session_start(); 
  #3 (permalink)  
Antiguo 28/06/2007, 08:48
 
Fecha de Ingreso: enero-2006
Ubicación: Maracay, Edo. Aragua
Mensajes: 206
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: session_start() más de una vez en la misma página...Se puede?

¡Excelente! GatorV, muy buena y acertada tu respuesta, sin embargo, lo he intentado y me da el siguiente error:

Cita:
Parse error: parse error, unexpected T_STRING, expecting T_VARIABLE or '$' in C:\wwwroot\BUHOWeb\class\manejar_xml2.php on line 10
Al parecer la función empty debe recibir como pará metro, obligatoriamente una variable, pero lo he solucionado haciendo lo siguiente y me ha funcionado bien:

Código PHP:
    $var session_id();
 
    if( empty( 
$var ) ) 
    {
        
//session_start();
        
echo "esta vacio";
    }
    else
    {
        echo 
"esta lleno";
    } 
Si lo coloco así mismo, me muestra en pantalla "Esta vacio", pero si antes coloco el session_start(), imprime "Esta Lleno".

Dime si está bien hecho y y gracias de una vez por la ayuda! Saludos
  #4 (permalink)  
Antiguo 28/06/2007, 08:54
 
Fecha de Ingreso: febrero-2007
Mensajes: 163
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: session_start() más de una vez en la misma página...Se puede?

Usa isset() en lugar de empty.
  #5 (permalink)  
Antiguo 28/06/2007, 09:33
 
Fecha de Ingreso: enero-2006
Ubicación: Maracay, Edo. Aragua
Mensajes: 206
Antigüedad: 18 años, 10 meses
Puntos: 0
Re: session_start() más de una vez en la misma página...Se puede?

Aaah, cierto... bueno, con el primer ejemplo me sirvió, pero voy a probar con isset también a ver que tal....muchas gracias!
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 22:03.