Tengo este codigo =Dfunction limpia($var){
//$var = strip_tags($var);
$malo = array("\\","\'","'"); // Aqui poner caracteres no permitidos
$i=0;$o=count($malo);
$cadenas = array('á','é','í','ó','ú','Á','É','Í','Ó','Ú','ñ','Ñ','[',']');
$html = array('á','é','í','ó','ú','Á','É','Í','Ó','Ú','ñ','Ñ','<','>');
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
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 ;)
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.
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 ;)