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.

Comentarios

"session_start();"
was the solution for my problem, which also showed the same error, I just forgot to initialize the session.
Diego dijo…
Agustin dijo...
"session_start();"
was the solution for my problem, which also showed the same error, I just forgot to initialize the session

same problem
Anónimo dijo…
Hola, colocando esto se quita el mensaje de los Notice

error_reporting(E_PARSE);



De lado contrario colocando:

error_reporting(E_ALL);

salen todos los Notice


Saludos

Entradas más populares de este blog

Como cambiar tu dominio propio en tu blog

AGILE METHODOLOGIES

Como descargar videos de Youtube Premium