function validarCampo($valorCampo, $parametros, $corregir = false, $showError = false) { if (isset($parametros['required'])) { $campoVacio = $valorCampo == '' ? false : true; if (!$campoVacio) { if ($showError) { return array("errorType" => "required", "errorMessage" => "Campo Vacío"); } return false; } } //Si el campo es diferente de vacío y no es required, se entra a verificar su valor. if ($valorCampo != '') { include_once 'core/general/ValidadorCampos.class.php'; $miValidador = new ValidadorCampos(); if (isset($parametros['minSize'])) { $valido = $miValidador->validarRango($valorCampo, $parametros['minSize'], 'minSize'); if (!$valido) { if (!$corregir) { if ($showError) { return array("errorType" => "minSize", "errorMessage" => "La longitud es menor a " . $parametros['minSize']); } return false; } $valorCampo = $miValidador->corregirRango($valorCampo, $parametros['minSize'], 'minSize'); } } if (isset($parametros['min'])) { $valido = $miValidador->validarRango($valorCampo, $parametros['min'], 'min'); if (!$valido) { if ($showError) { return array("errorType" => "min", "errorMessage" => "El número es menor a " . $parametros['min']); } return false; } } if (isset($parametros['maxSize'])) { $valido = $miValidador->validarRango($valorCampo, $parametros['maxSize'], 'maxSize'); if (!$valido) { if (!$corregir) { if ($showError) { return array("errorType" => "maxSize", "errorMessage" => "La longitud es mayor a " . $parametros['maxSize']); } return false; } $valorCampo = $miValidador->corregirRango($valorCampo, $parametros['maxSize'], 'maxSize'); } } if (isset($parametros['max'])) { $valido = $miValidador->validarRango($valorCampo, $parametros['max'], 'max'); if (!$valido) { if ($showError) { return array("errorType" => "max", "errorMessage" => "El número es mayor a " . $parametros['max']); } return false; } } if (isset($parametros['custom'])) { $valido = $miValidador->validarTipo($valorCampo, $parametros['custom']); if (!$valido) { if ($showError) { return array("errorType" => "custom", "errorMessage" => "El campo no es del tipo " . $parametros['custom']); } return false; } } } /* * Como se supone que ya superó la barrera de inyeccion SQl en la funcion limpiarSQL. * Se hace la corrección al insertar campos de texto con ' con el comodín ''. */ /* * "'" - simple * "\0" - NULL * "\t" - tab * "\n" - new line * "\x0B" - vertical tab * "\r" - carriage return * " " - ordinary white space * "\x00" - NULL * "\x1a" - EOF */ $valorCampo = trim($valorCampo); $valorCampo = str_replace('\'', '\'\'', $valorCampo); //Se propone guardar el string de los campos como carácteres html y luego si se necesita //Decodificarlos con htmlspecialchars_decode //$valorCampo = htmlspecialchars(nl2br($valorCampo),ENT_QUOTES); //http://php.net/manual/en/pdo.quote.php //http://php.net/manual/en/pdo.prepare.php return $valorCampo; }
$indice++; } // var_dump($enlaces,$titulosMenu,$titulosGrupoMenu); } else { header('Content-Type: text/json; charset=utf-8'); echo json_encode(array("errorType" => "custom", "errorMessage" => "Sin servicios registrados para el usuario.")); exit; } header('Content-Type: text/json; charset=utf-8'); echo json_encode($enlacesJavascript); break; case 'guardarObservacion': $_REQUEST['llaves_primarias_valor'] = str_replace('\\_', '_', $_REQUEST['llaves_primarias_valor']); $_REQUEST['llaves_primarias_valor'] = $this->miConfigurador->fabricaConexiones->crypto->decodificar($_REQUEST['llaves_primarias_valor']); include_once 'core/general/ValidadorCampos.class.php'; $miValidador = new ValidadorCampos(); $valido = $miValidador->validarTipo($_REQUEST['observacion'], 'onlyLetterNumberSpPunt'); $valido = $valido && $miValidador->validarTipo($_REQUEST['verificado'], 'boleano'); if (!$valido) { header('Content-Type: text/json; charset=utf-8'); echo json_encode(array("errorType" => "custom", "errorMessage" => "El campo observacion sólo debe contener elementos alfanuméricos, espacios, comas y punto.")); exit; } $conexion = "docencia"; $esteRecursoDB = $this->miConfigurador->fabricaConexiones->getRecursoDB($conexion); $cadenaSql = $this->sql->getCadenaSql('registrar_observacion', $_REQUEST); $resultado = $esteRecursoDB->ejecutarAcceso($cadenaSql, "insertar"); if ($resultado) { header('Content-Type: text/json; charset=utf-8'); echo json_encode(true); exit;