Mostrando entradas con la etiqueta get. Mostrar todas las entradas
Mostrando entradas con la etiqueta get. Mostrar todas las entradas

martes, 24 de abril de 2012

definiendo filtros globales para pase de parámetros

Siempre contamos con variables que son pasadas mediante $_GET y $_POST en multiples areas de nuestro proyecto siendo común un error de filtrado o validación en uno de ellos.

Para evitar ello existe una definición global de filtros, mediante la cual al encontrar la variable a filtrar inmediatamente aplica el filtro, al menos que especifiquemos un filtro manual.

Para aplicar estos filtros es mediante la función GP que remplaza a $_GET y $_POST

Alta del filtro

Esta se logra editando el archivo  masheditor/global/gp/gp.php  y en ella escribimos

<?php


$filtrogp['idempresa']='intval';
$filtrogp['idempleado']='intval';

$filtrogp['clave_empleado']='formato_de_clave';



?>

en este ejemplo cuando llamemos

$empresa=GP('idempresa')

automaticamente le aplicara un intval, como si hubiéramos escrito $empresa=GP('idempresa','intval')

si desearamos omitir el filtro intval simplemente lo especificamos manualmente e ignora el global

$empresa=GP('idempresa','nuevo_filtro')



paso de variables GET y POST

El paso de variables $_GET y $_POST puede ser directamente utilizado, o de preferencia utilizar la funcion GP la cual añade filtros adicionales

esta funcion unifica GET y POST en una sola funcion, en donde POST tiene mas peso que GET

MODO DE USO
$mixed = GP( variable , filtro=NULL)
en donde los filtros pueden ser varios a la vez, separados por comas

Estos filtros pueden ser funciones existentes de PHP, funciones propias o de la libreria de filtros del masheditor

Ejemplo
traer la variable de get llamada var
$variable=GP('var');

traer la variable get llamada var y convertirlo en entero
$variable=GP('var','intval');


traer la variable get llamada var y convertirlo en mayusculas
$variable=GP('var','strtoupper');

traer la variable get llamada var y convertirlo en decodificarlo de UTF8 y pasarlo a mayusculas
$variable=GP('var','utf8_decode,strtoupper,formatea_cedula');

equivale a 
$variable=formatea_cedula(strtoupper(utf8_decode($_GET['var'])));
o lo mismo:
$variable=$_GET['var'];
$variable=utf8_decode($variable);
$variable=strtoupper($variable);
$variable=formatea_cedula($variable);



ejemplo

crear el servicio masheditor/servicios/hola/hola.php

<?php
$usuario=GP('nombre','strtoupper');
$valor="hola $nombre";
?>

La direccion
http://www.mipagina.com/mt,30/nombre,Miguel

regresará:
hola MIGUEL