PHP: $ _SESSION no parece establecerse. ¿Alguna idea?

Pasé por esta SO Q / A mientras buscaba por qué mi sesión no se podía configurar.

On $_GET set $_SESSION won't work

Realmente no entiendo si esto se aplica a mi caso. Aquí va.

index.php

     ... 

Luego, llamo a lo siguiente cuando el usuario se autentica a sí mismo.

authenticate.php

  

También tengo esta cosa de autenticación comprobada cada 5 segundos para crear los botones para la sección en la que se encuentra el usuario.

authenticated.php

  

y mi configuración de llamada Ajax:

my_project.js

 $(document).ready(function() { startAuthenticationChecking(); }); function startAuthenticationChecking() { setInterval(function() { ajaxSession("authenticated.php"); }, 5000); } function ajaxSession(actionURL) { var authenticated = false; $.ajax({ async: false, url: actionURL, success: function(authenticated) { alert(authenticated); if (authenticated) { if (("#addNewAtvButtonDiv").is(":empty")) $("#addNewAtvButtonDiv").add(""); if (("#addNewSledButtonDiv").is(":empty")) $("#addNewSledButtonDiv").add(""); if (("#addNewUtvButtonDiv").is(":empty")) $("#addNewUtvButtonDiv").add(""); $("button").button(); } else { $("#addNewAtvButtonDiv").children().remove(); $("#addNewSledButtonDiv").children().remove(); $("#addNewUtvButtonDiv").children().remove(); } } }); } 

Mi problema

Aunque configuré $_SESSION["authenticated"] = false justo después de session_start(); , cuando ajaxSession() pregunta si un usuario se autentica a través de authenticated.php , siempre devuelve 'false' . Evento después de una autenticación usando authenticate.php con las credenciales apropiadas.

Pregunta relacionada: PHP / Ajax : How to show/hide DIV on $_SESSION variable value?

Cualquier ayuda bienvenida! He estado trabajando en esto por unas noches y días últimamente, y todavía estoy.

¡Gracias!

Asegúrese de que todas las páginas que usan las variables $_SESSION tienen session_start(); declarado antes de cualquier salida.

Parece que authenticate.php no tiene session_start(); declarado, pero utiliza una solicitud de sesión a continuación.

$ _SESSION [“authenticated”] = $ isAuthentic;

Esto causará problemas a menos que haya incluido / requerido el archivo authenticate.php , y el archivo padre tenga el session_start(); declarado.

NÓTESE BIEN:

session_start (); creará una sesión o reanudará una. Se requiere en cada página que usa variables de sesión.

php.net

session_start () crea una sesión o reanuda la actual basada en un identificador de sesión pasado a través de una solicitud GET o POST, o pasado a través de una cookie.

Además de verificar que tienes session_start (), me he encontrado con problemas con las variables de sesión que no informan los valores correctamente si no se han declarado antes de verificar si están configurados o verificar su valor.

Intenta colocar esto:

 $_SESSION["authenticated"]; 

Antes de su:

 if(!isset($_SESSION["authenticated"])) $_SESSION["authenticated"] = false;