Para iniciar una sesión en PHP, utilizamos la función session_start(), sin embargo, una práctica común (no necesariamente buena siempre) es forzar a que las sesiones se inicien automáticamente, modificando el archivo de configuración php.ini, especificamente haciendo session.auto_start = 1.
Bueno, el problema es que si ejecutamos session_start() y ya se encuentra una sesión activa (porque hayamos invocado anteriormente session_start() o porque se inicien automáticamente por nuestro php.ini), a partir de la versión 4.3.3 de PHP, se imprimirá un horrible mensaje tipo Notice:
Notice: A session had already been started - ignoring session_start()
Lo correcto es que invoquemos session_start() sólo si es necesario. Para ello, utilizaremos la función session_id(), la cual devuelve una cadena correspondiente al id de la sesión actual o una cadena vacía si no hay una sesión iniciado. Un posible uso sería:
<?php if (strlen(session_id()) < 1) session_start(); ?>
1 comentario:
Buenos días. Muchas gracias. Me ayudó a resolver un problema.
Publicar un comentario