/** * Método de edición de Empresas * @param integer $id ID de la empresa a editar */ public function editar($id = 0) { // validamos y saneamos aqui porque vamos a utilizarlo en caso // de que no haya $_POST $id = (int) $id; $id = Validaciones::saneamiento($id); // Bloque try catch para preveer posibles excepciones try { if (!$_POST) { // comprobamos si la empresa que se intenta editar es del usuario // que realiza la petición if (!EmpresaModel::comprobarPropiedadEmpresa($id)) { Session::add('feedback_negative', 'No puedes editar una empresa que no es tuya'); header('Location: /Empresa'); exit; } // mostrar el formulario para poder editar // para ello deberemos recuperar los BD $empresa = EmpresaModel::getId($id); $datos = ['titulo' => 'Edición de empresa', 'datos' => $empresa]; echo $this->view->render("empresa/formularioEmpresa", $datos); } else { // tratamos los datos en el modelo if (EmpresaModel::editar($id, $_POST)) { Session::add('feedback_positive', 'La empresa ha sido editada'); $last_id = $_POST["last_id"]; header('Location: /Empresa'); exit; } else { // existen errores, llamamos a la vista para mostrar los errores // Saneamos $_POST Session::add('feedback_negative', 'La empresa no se ha podido modificar o no se ha modificado nada'); $array = Validaciones::sanearEntrada($_POST); $datos = ['datos' => $array]; // mostramos la vista con los datos saneados, // para evitar la inyeción de código echo $this->view->render('empresa/formularioEmpresa', $datos); } } } catch (PDOException $e) { // llamamos a la vista de error 500 $array = ['msg' => 'Error del servidor, disculpe las molestias.']; echo $this->view->render('error/error500', $array); // modo debbug ON /*echo '<pre>'; echo $e->getMessage();*/ } }