PHP: Comprobar si una Sesión ya existe - Evitar el Error "A session had already been started"
Pregunta de Invitado | 06/03/2023 a las 20:03
Trabajo con sesiones en uno de mis scripts PHP. Desafortunadamente, de vez en cuando sucede que aparentemente ya existe una sesión de PHP, después de revocar session_start(). Esto da como resultado el siguiente mensaje de error (Ya se había iniciado una sesión):
Notice: A session had already been started - ignoring session_start()
¿Cómo puedo evitar este mensaje de error y verificar si ya existe una sesión y llamar a session_start() en consecuencia solo si aún no hay una sesión?
Temas Relacionados
Lazarus: Programa sin GUI - Muchos errores de WSRegister
Pregunta | 2 Respuestas
Script Batch: Apagar Computadora Windows
Tutorial | 2 Comentarios
SQLite: Examinar si existe una Tabla
Información | 0 Comentarios
PHP: Error "Call to undefined function now()"
Pregunta | 1 Respuesta
Validación HTML5: Element "link" is missing required attribute "property"
Pregunta | 1 Respuesta
Validación HTML: UL en UL causa error "ul not allowed as child of element ul in this context"
Pregunta | 1 Respuesta
PHP: Enviar Formulario con muchas Casillas de Verificación a un Script cómodamente
Consejo | 2 Comentarios
Aviso Importante
Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.
Participar
Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.
Puede comprobar fácilmente con isset() si ya hay una sesión o, en su caso, si no hay ninguna sesión abierta.
Puede hacerlo de la siguiente manera:
Sin embargo, la mejor solución sería (re)estructurar su código para que session_start() se invoque de manera confiable solo una vez, por ejemplo, solo cada vez que inicie su script. Con un buen diseño de código, no debería ocurrir ninguna llamada múltiple a session_start().
07/03/2023 a las 11:12
También puede usar la función de PHP session_status() para verificar si actualmente hay una sesión.
Si una sesión está abierta, obtendrá PHP_SESSION_ACTIVE de session_status(). Entonces puede escribir:
Esto verifica si session_status() no es igual a PHP_SESSION_ACTIVE (= una sesión está activa) y luego inicia una nueva sesión.
Otros valores de retorno de session_status() son:
Más sobre eso aquí en el Manual PHP.
09/03/2023 a las 17:09