Foro de elhacker.net

Programación => 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
  1. function limpia($var){
  2. //$var = strip_tags($var);
  3. $malo = array("\\","\'","'"); // Aqui poner caracteres no permitidos
  4. $i=0;$o=count($malo);
  5. $cadenas = array('á','é','í','ó','ú','Á','É','Í','Ó','Ú','ñ','Ñ','[',']');
  6. $html = array('&aacute;','&eacute;','&iacute;','&oacute;','&uacute;','&Aacute;','&Eacute;','&Iacute;','&Oacute;','&Uacute;','&ntilde;','&Ntilde;','<','>');
  7. while($i<=$o){
  8. $var = str_replace($malo[$i],"",$var);
  9. $var = str_replace($cadenas,$html,$var);
  10. $i++;
  11. }
  12. return $var;
  13. }
  14.  
  15. # Funcion que aplica la funcion anterior
  16. # para no tener que preocuparnos por
  17. # ataques de XSS o SQLi
  18. function LimpiarTodo($datos){
  19. if(is_array($datos)){
  20. $datos = array_map('limpia',$datos);
  21. }else{
  22. die("<span class=\"error\">La funcion <b>LimpiarTodo</b> debe contener un arreglo.</span>");
  23. }
  24. return $datos;
  25. }
  26.  
  27. if($_POST){
  28. $_POST =& LimpiarTodo($_POST);
  29. }
  30. if($_GET){
  31. $_GET =& LimpiarTodo($_GET);
  32. }
  33.  

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
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 ;)