Undefined variable: _SESSION
Un problema que me tomó 12 horas de mi vida........
Tratando de aprender el lenguaje de lado de servidor PHP tuve que instalar la version 5.2.0 configurar IIS para un directorio virtual casi nada, realizar mi primer prueba con phpinfo.php(); todo bien. Pase a usar las variables de sessiones entonces ahí surgió el problema, al querer realizar el siguiente ejemplo
pagina1.php
<?php
session_start();
$_SESSION["autenticado"] = "SI";
header("Location: pagina2.php");
//pagina1.php
?>
pagina2.php
<?php
session_start();
if ($_SESSION["autenticado"] == "SI")
echo("Usuario autenticado!!!");
else
echo("Usuario NO autenticado!!!");
//pagina2.php
?>
me saltaba el siguiente error:
PHP Notice: Undefined variable: _SESSION in .......\pagina2.php on line 3
no reconocía la variable?, al googlear un poco encontraba soluciones de todo, todas apuntaban casio a lo mismo, modificar el php.ini a register_globals=On pero como es habitual sería mejor ver el manual de php, entonces encontré en el capitulo CXLII. Session Handling Functions - Runtime Configuration - session.save_path el cual es el direcotrio donde se guardan los datos de cada sesion.
En mi caso estaba en un directorio que no había sido creado o no exisitía, entonces me tome la labor de cambiar la direccion a una existente, pero el problema persistía.
Solucion.- La carpeta a la cual se mecionaba en el php.ini no tenía el usuario ni el permiso necesario para ser escrita, manos a la obra, adicionar el usuario y el permiso de lectura y escritura a la carpeta.
Si alguien se ha encontrado con el problema mejor es tenerlo documentado para la proxima.
Tratando de aprender el lenguaje de lado de servidor PHP tuve que instalar la version 5.2.0 configurar IIS para un directorio virtual casi nada, realizar mi primer prueba con phpinfo.php(); todo bien. Pase a usar las variables de sessiones entonces ahí surgió el problema, al querer realizar el siguiente ejemplo
pagina1.php
<?php
session_start();
$_SESSION["autenticado"] = "SI";
header("Location: pagina2.php");
//pagina1.php
?>
pagina2.php
<?php
session_start();
if ($_SESSION["autenticado"] == "SI")
echo("Usuario autenticado!!!");
else
echo("Usuario NO autenticado!!!");
//pagina2.php
?>
me saltaba el siguiente error:
PHP Notice: Undefined variable: _SESSION in .......\pagina2.php on line 3
no reconocía la variable?, al googlear un poco encontraba soluciones de todo, todas apuntaban casio a lo mismo, modificar el php.ini a register_globals=On pero como es habitual sería mejor ver el manual de php, entonces encontré en el capitulo CXLII. Session Handling Functions - Runtime Configuration - session.save_path el cual es el direcotrio donde se guardan los datos de cada sesion.
En mi caso estaba en un directorio que no había sido creado o no exisitía, entonces me tome la labor de cambiar la direccion a una existente, pero el problema persistía.
Solucion.- La carpeta a la cual se mecionaba en el php.ini no tenía el usuario ni el permiso necesario para ser escrita, manos a la obra, adicionar el usuario y el permiso de lectura y escritura a la carpeta.
Si alguien se ha encontrado con el problema mejor es tenerlo documentado para la proxima.
Comentarios
was the solution for my problem, which also showed the same error, I just forgot to initialize the session.
"session_start();"
was the solution for my problem, which also showed the same error, I just forgot to initialize the session
same problem
error_reporting(E_PARSE);
De lado contrario colocando:
error_reporting(E_ALL);
salen todos los Notice
Saludos