You are on page 1of 6
‘usr018 Patron MVC 2dénde valdar datos? Iniciar Sesién con: =) QEspafiol ¥ phpcentral iam Pregunta: (En Espafiol) Fecha: 27-11-2015 20:26:51 Patrén MVC édénde validar datos? [RESUELTA] Estoy usando MVC en PHP pero me surgié una interrogante, para buenas précticas en donde debo hacer la validacién digamos de un inicio de sesién asi como el session_start() ya que en un sitio lef que las validaciones deben ser en el modelo y otras que en el controlador Por ejemplo: En el modelo recibo por medio del controlador el user y el pass aqui mismo debo verificar que no vengan vacios? En el mismo modelo crear las variables de sesién como $_SESSION['session_user'] = $r['user']; ? © eso hacerlo en el controlador y pasarle sélo los datos limpios después de validacién al modelo para después en el controlador crear la sesién con sus variables? Etiquetas: © § GET - © $ POST - © Clase PHP - MVC - © PHP - PHP MySQL - © PHP PDO - © Pregunta - © Validaciones Votos: 5 - Respuestas: 7 - Vistas: 98 Compartir en: | Google Facebook Twitter Linkedin Link Respuestas: tps www. hpeentval.com/pregunta/38tipatron-nve-donde-valtar-datos 48 s1sr2019 Patrén MVC zsonde valida datos? at Iniciar Sesién con: =) QEspafiol ¥ 2 I nese re ses Fecha: 28-11-2015 08:41:30 Hola Oscar, las validaciones pueden estar distribuidas por todas tus capas, a esto se lo llama validacién en profundidad, digamos que si utilizas el patrén MVC tienes varios puntos donde validar, veamos rapidamente: Del lado del cliente Tipicamente validaciones htmi5 y javascript, se utilizan para hacer un corte ante un mal ingreso del usuario, son validaciones debiles, porque pueden ser saltadas facilmente por el usuario, nunca podes confiar en ellas. Del lado del servidor ‘Aqui es donde ya tienes el control, puedes y debes validar en varias capas, digamos que la validacién de los datos enviados por el usuario debe ser la primer situacién a contemplar/validar (array $_GET, $_POST, $_FILE, etc), normalmente esta validacién es de inyeccién de cédigo (no de formatos), esto se puede hacer en el controlador frontal (si es que lo usas), en tu objeto de Contexto/Request, etc (mucho dependeré de tu implementacién) Los formatos tipicamente se validan en el motor de rutas y controlador. En el modelo no tiene mucho sentido, porque ya deberias tener el dato lo suficientemente validado. En el modelo por lo general hay una validacién implicita dada por el "prepared statement de mysql". Digamos, esto es "a grandes rasgos", porque también tienes validaciones en la capa de negocio, etc (y no todo es MVC, tan solo es parte de “el monstruo"). Saludos! Votos: 5- % Link respuesta 5 Junior Milano Karma: 96 El PSone eee 216, ss at Iniciar Sesién con: %) QEspafiol ¥ .a respuesta més acertada seria en el Controlador, pero agregando una capa de validacién extra es bueno hacerlo también en la vista con Javascript o HTMLS. Preferiblemente desarrolla ti las validaciones no esperes que un framework te haga del trabajo, no conoces que tan eficiente sean esas validaciones y también por un tema de habito correcto de programacién Votos: 5- % Link respuesta 4 Cesar DICR Karma: 32 OI) Fecha: 28-11-2015 16:01:21 1. Vista, primera linea de defensa, al menos que no ingresen "ABC" cuando se pide un numero, o comillas, 0 cualquier dato sencillo que pueda ser controlable "sin necesidad" de informacion adicional desde el servidor. 2. Controllador, cuando la informacion requiere validacion con la informacion adicional desde el modelo, o alguna entidad o servicio externo... Aqui esta validacion es importante, porque el controlador despachata el flujo segun la valides 0 no de la informacion recibida, ya sea un flujo de manejo de errores, o una pagina de procesamiento correcto. 2.1 Por ejemplo para hacer un pago, necesitas saber si tienes suficiente credito en tu ‘cuenta antes de hacer la transaccion, eso no lo puedes conocer en la pantalla, 2.2 Por ejemplo, si ingresas tu DNI, y tienes que usar un servicio del estado para validar que pertenesca a la persona que dice ser (Peru es la RENIEC).. :D Votos: 4- S Link respuesta tps 36

You might also like