usan - recuperar session php
¿Cómo compruebo si se ha introducido session_start? (10)
¡La mejor manera de trabajar para mí! if (session_status ()! = 1) session_start ();
Tengo un script de terceros y me preguntaba cómo puedo verificar con PHP
si session_start()
ha sido declarado antes de hacer algo.
something like if(isset($_session_start())) { //do something }
Acabo de escribir una función simple para ello.
function isSessionStart ()
{
if (version_compare(phpversion(), ''5.4.0'', ''<'')) {
if(session_id() == '''') {
return false;
}
return true;
}
else {
if (session_status() == PHP_SESSION_NONE) {
return false;
}
return true;
}
}
Como en PHP> = 5.4.0, tiene la función session_status () que le dice si se ha inicializado o no o si está deshabilitado.
Por ejemplo puedes hacer:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
Puede leer más sobre esto en http://www.php.net/manual/en/function.session-status.php
Si la sesión ya comenzó, Error: "Error grave: no se puede usar el valor de retorno de la función en el contexto de escritura"
Prueba esto:
$session = session_id();
if(empty($session)){
session_start();
}
Supongo que podrías usar la función session_id
:
session_id()
devuelve el ID de sesión para la sesión actual o la cadena vacía ("") si no hay una sesión actual (no existe un ID de sesión actual).
O tal vez probar si $_SESSION
está configurado o no, con isset
, podría hacer el truco, ya que no debería establecerse cuando no se haya iniciado ninguna sesión; solo debe esperar que nada asigne nada a $_SESSION
sin iniciar la sesión primero .
para php> = 5.4.0
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
para php <5.4.0
if(session_id() == '''') {
session_start();
}
function session_started(){ return !!session_id(); }
if(!isset($_SESSION)) {
session_start();
}
La verificación le permitirá mantener su sesión actual activa incluso si se trata de una aplicación de envío de bucle invertido en la que planea reutilizar el formulario si los datos se escriben incorrectamente o si tiene controles y saldos adicionales dentro de su programa antes de continuar con el siguiente programa.
if(isset($_SESSION)) {
// do something
}
if(defined(''SID''))
// do