Foros del Web » Programando para Internet » PHP »

PHP OO Restringir Acceso a url

Estas en el tema de Restringir Acceso a url en el foro de PHP en Foros del Web. Buenos días, Estoy realizando una aplicación usando MVC, en el que todas mis páginas se cargan a través del index(mediante include) según la ruta que ...
  #1 (permalink)  
Antiguo 01/05/2017, 04:03
Banshi
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Restringir Acceso a url

Buenos días,
Estoy realizando una aplicación usando MVC, en el que todas mis páginas se cargan a través del index(mediante include) según la ruta que he obtenido en el controlador. Quisiera que para acceder a a las páginas se hiciera haciendo los pasos oportunos, login->acceso a index->página requerida por navegación. Esto lo consigo, pero si alguien escribe directamente la url, por ejemplo http://localhost/aplicacion/usuarios/add me devuelve la vista y me gustaría restringir ese acceso. Creo que se consigue, configurando un archivo .htaccess, pero no se como. ¿Me podríais echar un cable? Gracias.
  #2 (permalink)  
Antiguo 01/05/2017, 05:42
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Restringir Acceso a url

Hola Banshi,

Yo no conozco muy bien el sistema MVC, pero creo que lo que te refieres, en cualquier sistema, se hace mediante sesiones...
  #3 (permalink)  
Antiguo 01/05/2017, 08:26
Banshi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Restringir Acceso a url

Cita:
Iniciado por rbczgz Ver Mensaje
Hola Banshi,

Yo no conozco muy bien el sistema MVC, pero creo que lo que te refieres, en cualquier sistema, se hace mediante sesiones...
Gracias por responder. Si, sesiones uso, pero como digo, todo pasa a través de index.php. Si pongo la dirección http://localhost/aplicacion/usuarios/add el controlador se hace cargo de formar la url y en el index hay un include con esa url que carga la vista. Así que solo hay un session_start() en el index, ya que todas las página cargan ahí. Si navego normal, habiendo hecho login. Me muestra todo bien, pero si pongo una url como la anterior directamente en el navegador, me carga la vista, pero sin el menu por ejemplo que está en el index. Yo lo que quiero es que de alguna manera me obligue a pasar por el index siempre.
  #4 (permalink)  
Antiguo 01/05/2017, 08:58
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Restringir Acceso a url

Hola Banshi,

¿Podría ser algo así?

Código PHP:
Ver original
  1. if ($_SERVER['HTTP_REFERER'] == ""){
  2. Header ("Location: index.php");

Yo te estoy tirando ideas por si te sirva alguna, pero tampoco sé exactamente cómo...
  #5 (permalink)  
Antiguo 02/05/2017, 02:55
Banshi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Restringir Acceso a url

Cita:
Iniciado por rbczgz Ver Mensaje
Hola Banshi,

¿Podría ser algo así?

Código PHP:
Ver original
  1. if ($_SERVER['HTTP_REFERER'] == ""){
  2. Header ("Location: index.php");

Yo te estoy tirando ideas por si te sirva alguna, pero tampoco sé exactamente cómo...
No, no es eso lo que necesito. Gracias igualmente.
  #6 (permalink)  
Antiguo 02/05/2017, 07:21
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Restringir Acceso a url

Cita:
Iniciado por Banshi Ver Mensaje
Gracias por responder. Si, sesiones uso, pero como digo, todo pasa a través de index.php. Si pongo la dirección http://localhost/aplicacion/usuarios/add el controlador se hace cargo de formar la url y en el index hay un include con esa url que carga la vista. Así que solo hay un session_start() en el index, ya que todas las página cargan ahí. Si navego normal, habiendo hecho login. Me muestra todo bien, pero si pongo una url como la anterior directamente en el navegador, me carga la vista, pero sin el menu por ejemplo que está en el index. Yo lo que quiero es que de alguna manera me obligue a pasar por el index siempre.
Algo no estas haciendo bien o explicando. Dices que todo pasa a través del index, pero se puede acceder mediante la ruta al archivo ¿?, esto me hace pensar que tu página no se costruye desde el index cargando el controlador que a su vez cargará la vista, si no más bien que simplemente redirecciona a la vista correspondiente, por lo que lo de MVC me da que esta mal implementado. Lo normal es todas las peticiones se redirigen al index utilizando la reescritura de url.


Por otro lado si lo que debes hacer es validar que el usuario este logeado, en cada petición, que se haga se debe comprobar que el usuario haya iniciado sesión o tenga los permisos o lo que corresponda según los requerimientos.

Código PHP:
if(!$_SESSION['logeado']){
    
// Usuario no logeado
    // Redirigir a login
    
exit;

Igualmente decir que MVC esta bien como base, pero este patrón es insuficiente para entornos web complejos que suelen requerir mas capas, por lo que no se deberia de tener como norma inquebrantable y aun que ahora le ha dado a todo el mundo por implementarlo el patrón MVC no fue concebido para este tipo de aplicaciones.
__________________
Unset($vida['malRollo']);

Etiquetas: restringir, url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:48.