2011-08-01 17 views
7

Quiero comprobar si una sesión está configurada actualmente, y si es así, permitir que la página se ejecute de forma normal (no hacer nada) si no es así crear una sesión.Verifica si la sesión está configurada o no, y si no creas una?

que tenían un vistazo a otra cuestión de forma, en la que se publicó el siguiente código:

if (empty($_SESSION['login'])) { } else { } 

¿La manera más fácil de hacer esto es para establecer algo así como $_SESSION['a'] para cada sesión, y luego ejecutar if(empty($_SESSION['a'])) a comprobar si existe una sesión

Entonces, de nuevo, puede usar una variable de sesión sin invocar session_start() en primer lugar, haciéndolo obsoleto (intenté esto ayer, como un eco, no como una instrucción if para verificar que una variable estaba llevando a cabo sin darme cuenta de que session_start() necesitaba ser invocado antes de poder repetir la variable).

Probablemente haya una manera fácil de usar, parece que no puedo encontrarla.

¡Cualquier ayuda sería muy apreciada!

Respuesta

22

session_id() devuelve la cadena que identifica la sesión actual. Si una sesión no se ha inicializado, devolverá una cadena vacía.

if(session_id()) 
{ 
     // session has been started 
} 
else 
{ 
     // session has NOT been started 
     session_start(); 
} 
+0

Muchas gracias :). Lo acepto después de que el temporizador de 10 minutos desaparezca. – Fireworksable

+2

Una mejora adicional: no es necesario comprobar para ver si la cadena es falsa: use la devolución de 'session_id()' como la prueba en sí; las cadenas vacías son valores "falsey", lo que significa que '''' evaluará a falso en la instrucción 'if'. – Nightfirecat

Cuestiones relacionadas