En este corto artículo te mostraré cómo iniciar una sesión de PHP solo si la misma no está iniciada. De este modo podemos invocar a la función que te mostraré sin importar si la sesión ya ha sido iniciada anteriormente, evitando el aviso que dice:
Notice: session_start(): A session had already been started – ignoring in archivo..php on line N.
Iniciar sesión solo si no está iniciada en PHP
En lugar de llamar a session_start
vamos a crear nuestra propia función que dentro tiene un if
y verifica si la sesión ya está iniciada. Si la misma no está iniciada, entonces la va a iniciar por primera vez.
<?php
function iniciarSesionSiNoEstaIniciada()
{
if (session_status() !== PHP_SESSION_ACTIVE) {
session_start();
}
}
Ahora hay que reemplazar todos los lugares en donde invoquemos a session_start
por esta función, y así vamos a evitar el problema que mencioné al inicio del post.
<?php
# Antes:
session_start();
# Ahora:
iniciarSesionSiNoEstaIniciada();
Recuerda que puedes colocar esta función de manera global, en un archivo que incluyas, en una clase, etcétera.