![]() |
Comprobar sesion en el frontController y en la vista? Hola a todos, estoy desarrollando un frontController a mi medida basado en el que publica GatorV en su blog, y aplicando el modelo MVC tal cual lo propone. Mi duda es la siguiente, las comprobaciones de sesión he de incluirlas en el frontController, entiendo que por lógica sí, además ya sabemos las condiciones del "session_star", pero mi duda es si deberíamos hacer un include de un "session.php" que valide al usuario, en las vistas para que si algún usuario introduce una URL de las vistas directamente se le redirija a la página de login. EDITO: ¿En los controladores y modelos sería necesario? Un saludo |
Re: Comprobar sesion en el frontController y en la vista? Lo mejor es validar eso en el controlador especifico, dejale la tarea al frontController de iniciar la aplicación. El inicio de sesión debe de ser por cada controlador y ahí se debe de hacer la validación del usuario si esta logueado o no. Trasladado a PHP Orientado a Objetos |
Re: Comprobar sesion en el frontController y en la vista? Cita:
Parte del controlador deberia encargarse de crear un objeto "usuario" a partir de la sesion. Luego se puede pasar ese objeto "usuario" al resto de objetos que necesiten hacer comprobaciones de login o permisos. |
Re: Comprobar sesion en el frontController y en la vista? Hola GatorV, Te comento como lo estoy haciendo a ver que te parece: Para controlar las sesiones he pensado lo siguiente: De la clase Controller heredan todos los controladores, por lo que en el constructor de la misma comprobaré sesión y el constructor de la clase hija llamará al del padre: Código PHP: Por otro lado tengo un problema, adjunto ficheros para que lo veáis más claro. index.php Código PHP: Controlador de login: Código PHP: Código PHP: Hago un include de las variables con los datos de los directorios que declaro en el fichero config.php desde el FrontController e instancio un objeto $db para las conexiones a BD y al hacer el include del controlador y llamar a la función y esta a la del modelo, las variables me dice que no están declaradas(por lo que meto la ruta completa a mano) y el objeto $db desde el Usuario_model.php me dice que no existe, vamos que no hay persistencia de datos al hacer el include o entiendo que por instanciar el objeto no tengo acceso a otras variables "globales", entiendo que el problema es que mi sistema de programación no es el adecuado, ¿cómo lo puedo solucionar? Se me ocurre por ejemplo crearme una clase "model" y que todos los modelos hereden de esta y esta misma se encarge de instanciar el objeto de BD, pero ¿no será rizar el rizo ya demasiado? Espero vuestra ayuda, que ando un poco atascado... Muchas gracias :) |
Re: Comprobar sesion en el frontController y en la vista? Cita:
login.html Código HTML: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">EDITO: El código que pongo no es una vista como tal. sería una página HTML, creo que no tiene mucho sentido lo que cuestiono aquí. Pero lo anterior sí. Un saludo, |
Re: Comprobar sesion en el frontController y en la vista? Te recomendaría para las clases como DB, uses el patrón Singleton, así podrás obtener la instancia de la clase desde cualquier modelo llamando al método getInstance(), asi te despreocupas si tu clase DB esta definida o no. Saludos. |
Re: Comprobar sesion en el frontController y en la vista? Cita:
Muchas gracias a todos por las respuestas. |
Re: Comprobar sesion en el frontController y en la vista? ¿Que es lo que guardas en tu archivo de config.php? La idea es que uses el patrón registry para guardar todo en un registro general, la clase registry debe de usar también el patrón Singleton para que puedas consultarlo desde cualquier punto de tu aplicación. Saludos. |
Re: Comprobar sesion en el frontController y en la vista? Cita:
Muchas gracias GatorV, voy a ponerme un poco al día con los patrones Singleton y Registry. En el config.php declaraba una seríe de variables con los directorios principales: vistas, modelos y controladores. Muchas gracias por tu ayuda :) PD: Si la cosa sigue así, voy a tener que ponerte una dedicatoria en el libro del proyecto :P |
Re: Comprobar sesion en el frontController y en la vista? Aquí estamos para ayudar :-) Saludos. |
| La zona horaria es GMT -6. Ahora son las 12:33. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.