Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Azielito en 30 Julio 2007, 21:59 PM

Título: Problema funciones, valores globales y demas
Publicado por: Azielito en 30 Julio 2007, 21:59 PM
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
Título: Re: Problema funciones, valores globales y demas
Publicado por: Sanjuu en 31 Julio 2007, 11:02 AM
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 ;)
Título: Re: Problema funciones, valores globales y demas
Publicado por: 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 )
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.
Título: Re: Problema funciones, valores globales y demas
Publicado por: Sanjuu en 31 Julio 2007, 18:17 PM
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 ;)