elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Filtro de palabras ofensivas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Filtro de palabras ofensivas  (Leído 10,775 veces)
mark182


Desconectado Desconectado

Mensajes: 395


Ver Perfil WWW
Filtro de palabras ofensivas
« en: 20 Febrero 2010, 18:22 pm »

Hola como esta?

Queria saber como se podria hacer un filtro de palabras ofensivas en un textarea?
O sea, hay un formulario con un textarea donde el usuario puede dejar comentarios que seran guardados en una base de datos y que aparecera en la web, si ese comentario tiene palabras ofensivas, quiero que no se guarde el comentario y que le informe al usuario sobre lo ocurrido. Como se puede hacer?

Muchas gracias. 


En línea

Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Filtro de palabras ofensivas
« Respuesta #1 en: 21 Febrero 2010, 00:20 am »

Código
  1. <input type=button onclick='var tex=document.getElementById("textarea"); if (tex.value.split("palabra")) { tex.value = tex.value.replace("palabra", "******"); } document.form.submit(); '>

y creo que ahi tendria que ir.... silo queres en php es otra cosa....


« Última modificación: 21 Febrero 2010, 00:25 am por Castg! » En línea

KrossPock

Desconectado Desconectado

Mensajes: 208



Ver Perfil
Re: Filtro de palabras ofensivas
« Respuesta #2 en: 21 Febrero 2010, 00:40 am »

En php:
Código:
<?php
$palabras=array("nabo","gil","palabra");// Aca va las palabras que no queres que aparescan
$texto="Este script lo hizo krosspock, que no es un gil ni un nabo :P";// este es el texto
$a =str_ireplace($palabras,"#@!%",$texto);// lo reemplazamos
echo "$a"//y lo imprimimos a.a
?>
« Última modificación: 21 Febrero 2010, 00:45 am por KrossPock » En línea


~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Filtro de palabras ofensivas
« Respuesta #3 en: 21 Febrero 2010, 00:44 am »

Aqui en PHP...
Código
  1. <?php
  2.  
  3. function detect($txt){//Funcion detectadora de insultos
  4.  
  5. $ins = array('idiota','loca');//Array que contiene los insultos a detectar
  6.  
  7. foreach ($ins as $insulto){//Pasamos el array a una variable
  8.  
  9. if(preg_match("/$insulto/i",$txt)){/*Usamos expreciones regulares
  10. para comprobar si en el texto existe algun insurto.
  11. Tambien uso el modificador i para que no diferencia entre mayuscula y minuscula*/
  12.  
  13. echo "Se a detectado insultos xD";
  14. exit;//Si se ejecuta el if() se manda un mensaje y finaliza el script
  15. }}
  16. return $txt;//Si no se detecta ningun insulto devuelve el texto
  17. }//Fin de la funcion
  18.  
  19.  
  20. $a = "Buenas como estan?";
  21. echo detect($a)."\n";
  22.  
  23. $b = 'Hola como estas loca he';
  24. echo detect($b)."\n";
  25.  
  26.  
  27.  
  28.  
  29. ?>
« Última modificación: 21 Febrero 2010, 00:47 am por yoyahack » En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
KrossPock

Desconectado Desconectado

Mensajes: 208



Ver Perfil
Re: Filtro de palabras ofensivas
« Respuesta #4 en: 21 Febrero 2010, 00:47 am »

El mio e ma cortito y no consume tantos recursos xDD... hay que tratar de usar preg_match cuando realmente se necesitan expresiones regulares, sino str_replace o strpos
En línea


~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Filtro de palabras ofensivas
« Respuesta #5 en: 21 Febrero 2010, 00:54 am »

Bueno en este caso es mejor crear una funcion, porque Optimizas los codes, yo para buscar texto, verificar o sacar, quitar siempre uso Expresiones Regulares, hay que acostumbrarse.
No es que sea mas colto, ya que pasa a ser una funcion, ademas no creo que gaste mucho recurso porque nadamas la funcion se lee una sola vez, tambien se puede hacer facilmente con POO...

Usas una función para detectar o un POO para detectar y tienes un buen code, el que hiciste va a gastar siempre mas recursos, porque lo mas seguro se usara en mas de una variable y se hara lo mismo una y otra vez y gastara mas recursos y mas lineas.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
KrossPock

Desconectado Desconectado

Mensajes: 208



Ver Perfil
Re: Filtro de palabras ofensivas
« Respuesta #6 en: 21 Febrero 2010, 18:14 pm »

Bueno en este caso es mejor crear una funcion, porque Optimizas los codes, yo para buscar texto, verificar o sacar, quitar siempre uso Expresiones Regulares, hay que acostumbrarse.
No es que sea mas colto, ya que pasa a ser una funcion, ademas no creo que gaste mucho recurso porque nadamas la funcion se lee una sola vez, tambien se puede hacer facilmente con POO...

Usas una función para detectar o un POO para detectar y tienes un buen code, el que hiciste va a gastar siempre mas recursos, porque lo mas seguro se usara en mas de una variable y se hara lo mismo una y otra vez y gastara mas recursos y mas lineas.

Se lo transforma en funcion y listo a.a

Código:
<?php
Function detect ($texto){
$palabras=array("nabo","gil","palabra");// Aca va las palabras que no queres que aparescan
$a =str_ireplace($palabras,"#@!%",$texto);// lo reemplazamos
return $a;
}

$y="hola nabo, no seas gil o Gil (para que veas que tambien borra mayusculas), aca iria otra palabra mas";
$t=detect($y);
echo "$y<br>$t"
?>
En línea


~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Filtro de palabras ofensivas
« Respuesta #7 en: 21 Febrero 2010, 18:18 pm »

Si se escribe una palabra en mayuscula tu source no lo detecta
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
KrossPock

Desconectado Desconectado

Mensajes: 208



Ver Perfil
Re: Filtro de palabras ofensivas
« Respuesta #8 en: 21 Febrero 2010, 18:35 pm »

Si se escribe una palabra en mayuscula tu source no lo detecta

Lo probaste? si que lo detecta, uso str_ireplace() no str_replace hasta puse esta linea:

$y="hola nabo, no seas gil o Gil (para que veas que tambien borra mayusculas), aca iria otra palabra mas";

para demostrarlo  :¬¬
En línea


~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Filtro de palabras ofensivas
« Respuesta #9 en: 21 Febrero 2010, 19:39 pm »

Ps si man, tienes razón, aunque me gusta mas el mio xD.

Pd:Usa bbcode de code para php
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Francia anuncia que tendrá capacidades 'ofensivas' en materia de ciberdefensa
Noticias
wolfbcn 0 1,677 Último mensaje 4 Junio 2013, 01:57 am
por wolfbcn
Instagram incluye un filtro de palabras para evitar el acoso
Noticias
wolfbcn 1 1,636 Último mensaje 20 Septiembre 2016, 21:11 pm
por crazykenny
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines