Autor Tema: LimpiarString()  (Leído 810 veces)

Desconectado Raken

  • PHPero Avanzado
  • ****
  • Mensajes: 297
  • Karma: 30
  • Sexo: Masculino
    • Ver Perfil
LimpiarString()
« en: 27 de Octubre de 2006, 16:02:16 pm »
Hasta ahora habíamos hablado de funciones que vienen predeterminadas en PHP. Pero también podríamos hablar de una creada por nosotros... ¿Por qué no?  :)

LimpiarString(), este es el nombre que le he puesto a la función de la que voy a hablar a continuación.


Código
<?
function LimpiarString($cadena) {

$cadena htmlspecialchars(trim($cadena));
$cadena eregi_replace("<[^>]*>","",$cadena) ;
$cadena eregi_replace(".*//","",$cadena) ;

return 
$cadena;
}
?>


¿Qué hace?
Cuando el usuario envía valores (a través de la URL, es decir, pagina.php?variable=valor..., de un formulario, etc) se acepta cualquier tipo de caracter. Esto es algo que no nos conviene demasiado, ya que queremos que el usuario pueda enviar datos, pero no que pueda escribir CÓDIGO (y hacer lo que quiera en la web).

Pasando LimpiarString() por esos valores, ya no detecta el código. Lo envía todo como texto plano.



¿Cómo se usa?
Una vez hemos definido la función (código de arriba), sólo tenemos que aplicarla usandolo así en una variable:

$variable LimpiarString($variable);


Ejemplo

$variable "<b>hola</b>";  //Esto es lo que contiene la variable, el texto: <b>hola</b>

echo $variable//Mostrando la variable tal cual, mostraría hola en negrita. ¿Por qué? Porque traduce las etiquetas de HTML <b> y </b>

$variable LimpiarString($variable);

echo 
$variable//Ahora sí habría pasado por el proceso de limpiarla, y el resultado quedaría: <b>hola</b>  MOSTRANDOSE TAL CUAL, y NO traduciendo el código.



Explicación parcial

Lo que hace la función es someter a la variable a diferentes comandos :

  • HTMLSPECIALCHARS: Hace que no interprete el HTML (naveda ya nos lo explicó)
  • TRIM: Quita espacios blancos de delante y de detrás del texto. Por si acaso.
  • EREGI_REPLACE:. Reemplaza caracteres extraños por otros que lo conviertan en texto plano, y no sea interpretado como código.

Recordad que esta función (muy sencilla) la he creado yo, y no viene predeterminada con PHP. Tenéis que definirla con el código que he puesto arriba, y usarla igual que en el ejemplo.  ;)
« Última modificación: 27 de Octubre de 2006, 16:08:42 pm por Raken »
Raken - Moderador para PHP y HTML

Comunidad PHPeros

LimpiarString()
« en: 27 de Octubre de 2006, 16:02:16 pm »

Desconectado adonis

  • PHPerit@
  • *
  • Mensajes: 13
  • Karma: 0
    • Ver Perfil
Re: LimpiarString()
« Respuesta #1 en: 12 de Febrero de 2007, 18:27:32 pm »
Muy Bueno usar

Function()

RETURN

Pero hay algunos q no sabemos usarlo
Me gustaria aprender como usar pues en scripts ya hecho encontramos mucho de esos Gracias
Salu2

Desconectado BLISZ

  • PHPerit@
  • *
  • Mensajes: 38
  • Karma: 7
  • Sexo: Masculino
    • Ver Perfil
Re: LimpiarString()
« Respuesta #2 en: 19 de Marzo de 2007, 02:23:02 am »
no le vendria mal un mysql_real_escape_string(), q nunca se sabe
Empty your mind, be formless, shapeless — like void*. If you put an int into a void*, it becomes the int. You put float into a void* it becomes the float. You put in a char it becomes the char. Now, void* can flow or it can overflow. Be void* my friend.