eareddhel escribió:
Reviviendo temas antiguos. Hace tiempo que no paso por aquí.
Lo que he aprendido en estos años, es que antes de ponerse a copiar código, es necesario entender con claridad lo que deseas lograr. Nunca encontrarán un código que se ajuste milagrosamente a lo que quieren hacer. Sí encontrarán fragmentos por aquí, fragmentos por allá, los que al unirlos por lo general no funcionan, y no porque estén malos, sino porque responden a procesos mentales diferentes, ya que en programación, como en la vida, hay más de una forma de hacer las cosas.
Siguiendo lo anterior, creo que haciendo un diagrama de flujo en papel se puede tener claridad sobre los pasos a seguir para validar si la sesión está iniciada o no. A tener en cuenta: en todas las páginas debes agregar la línea session_start();, de lo contrario, pueden ocurrir cosas indeseadas, como que alguien entre a una sección sin estar logueado. Por otro lado, es importante recordar los nombres que se asignen a las sesiones.
La lógica es más o menos así:
1. Al cargar una página, inicio session_start();
2. Compruebo si existe alguna sesion activa. Supongamos: $_SESSION['sesion_usuario'];
3. Si no está logueado, lo envío al home o login.
4. Si está logueado, le permito el acceso o lo envío a otro lado, según lo que desees hacer.
De este modo, si un usuario entra a alguna parte restringida, se le pedirá loguearse.
Ahora, las formas de lograr esto, pueden variar. Si el código anterior no les funciona es porque seguramente no han iniciado la variable $_SESSION['k_email'];. El error debe estar ahí puesto que en esa parte del código está la redirección. Por eso es importante tener claridad sobre los nombres que usamos, la lógica a emplear y lo que ocurrirá en cada caso.
Espero dar luces sobre el tema. Saludos cordiales.