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.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto