Problema funciones, valores globales y demas

Iniciado por Azielito, 30 Julio 2007, 21:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Azielito

Tengo este codigo =D
Código (php) [Seleccionar]
function limpia($var){
//$var = strip_tags($var);
$malo = array("\\","\'","'"); // Aqui poner caracteres no permitidos
$i=0;$o=count($malo);
$cadenas = array('á','é','í','ó','ú','Á','É','Í','Ó','Ú','ñ','Ñ','[',']');
$html = array('&aacute;','&eacute;','&iacute;','&oacute;','&uacute;','&Aacute;','&Eacute;','&Iacute;','&Oacute;','&Uacute;','&ntilde;','&Ntilde;','<','>');
while($i<=$o){
$var = str_replace($malo[$i],"",$var);
$var = str_replace($cadenas,$html,$var);
$i++;
}
return $var;
}

# Funcion que aplica la funcion anterior
# para no tener que preocuparnos por
# ataques de XSS o SQLi
function LimpiarTodo($datos){
if(is_array($datos)){
$datos = array_map('limpia',$datos);
}else{
die("<span class=\"error\">La funcion <b>LimpiarTodo</b> debe contener un arreglo.</span>");
}
return $datos;
}

if($_POST){
$_POST =& LimpiarTodo($_POST);
}
if($_GET){
$_GET =& LimpiarTodo($_GET);
}


El problema es que no me cambia las eñes, ni acentos ni nada, tambien probe ya con strtr() y no me funciona tampoco ¬¬

No me da error ni nada pero no cumple su funcion esta funcion :xD

Sanjuu

Por qué pasas $var como parámetro y luego le haces un return?

Si vas a modificarla desde fuera pasala por referencia con &$var y listo ;)

Código (php) [Seleccionar]

if (pregunta->buscador()==NULL)
     pregunta->formular_pregunta();

alone-in-the-chat

xDª pues a mi si que me funciona pero cuando los envio por POST si pruebas por GET
los valores como ñ o ó se pasan solos a su codigo html  :xD (en la barra del explorador ya estan cambiados )
y añado otra sugerencia  ;D   al estilo Sanjuu

por que usas usas while? para recorrer un array mejor usa foreach ,  :D pero por lo demas me funciono bien

Saludos.
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

Sanjuu

Cita de: alone-in-the-chat en 31 Julio 2007, 17:06 PM
xDª pues a mi si que me funciona pero cuando los envio por POST si pruebas por GET
los valores como ñ o ó se pasan solos a su codigo html  :xD (en la barra del explorador ya estan cambiados

Al ver esto he pensado en

htmlspecialchars($cadena)


Creo que es la solución a lo que planteas ;)

Código (php) [Seleccionar]

if (pregunta->buscador()==NULL)
     pregunta->formular_pregunta();