Foros del Web » Programando para Internet » PHP »

bloquear ingreso de palabras en foro con php

Estas en el tema de bloquear ingreso de palabras en foro con php en el foro de PHP en Foros del Web. Me han pedido que adecue el foro de un sitio, que es bastante vulnerable a recibir comentarios no muy gratos, con insultos. Este foro no ...
  #1 (permalink)  
Antiguo 10/06/2010, 06:44
 
Fecha de Ingreso: junio-2010
Mensajes: 6
Antigüedad: 9 años, 6 meses
Puntos: 0
bloquear ingreso de palabras en foro con php

Me han pedido que adecue el foro de un sitio, que es bastante vulnerable a recibir comentarios no muy gratos, con insultos. Este foro no tiene un moderador
permanente, asi que me sugirieron que tratara de bloquear el ingreso de determinadas palabras.

-Se me ha ocurrido que tal vez si pudiera relizar un codigo que guarde el mensaje en una base de datos auxiliar sometida de alguna manera a un "examinador" de palabras contenidas en cada mensaje (que seria como un buscador dentro de cada mensaje guardado en esa base de datos). Y que despues de examinarlo si no contiene ninguna palabra inapropiada lo pase a la bd permanente y lo publique o de lo contrario lo borre.

-El problema es que no se me ocurre como unir el codigo del foro (php), con todo lo que acabo de decir y con la publicacion en pantalla del mensaje.

Creo que debe haber una forma mas facil pero no la conozco o me la estoy complicando demasiado.

Si me pueden ayudar con algunas ideas mas eficaces.
  #2 (permalink)  
Antiguo 10/06/2010, 08:27
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 11 años, 9 meses
Puntos: 10
Respuesta: bloquear ingreso de palabras en foro con php

Algo asi te podria servir (y sin usar base de tatos)

Código PHP:

//$palabras_inapropiadas = array("palabra1","palabra2","palabra3","palabra3","frase 1","frace 2");

$palabras_inapropiadas "palabra1 
                          palabra2 
                          palabra3 
                          palabra3 
                          frase 1 
                          frase 2
                          frase mas extensa
                          "
;
                          
//o podrias tener esas palabras en un txt y ¡hacer asi
//$palabras_inapropiadas = file_get_contents("archivo.tst");                          


//le damos un valor literal a $_POST : este sera el que venga del formulaio (textarea)
$_POST['mensaje_del_usuario'] = "frase mas extensa";

//devuelve 1 si se halla la palabra o frase
echo substr_count($palabras_inapropiadas,$_POST['mensaje_del_usuario'])."<br />";

//devuelve la palabra o frase
echo stristr($palabras_inapropiadas,$_POST['mensaje_del_usuario'])."<br />";

//alli ya puedes aplicar una condicion 

Bueno no es el codigo pero algo ayudara.
  #3 (permalink)  
Antiguo 10/06/2010, 08:46
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 11 años, 9 meses
Puntos: 10
Respuesta: bloquear ingreso de palabras en foro con php

Este es un poco mas efectivo:

Código PHP:

$palabras_inaporpiadas 
"palabra1 
                          palabra2 
                          palabra3 
                          palabra3 
                          frase 1 
                          frase 2
                          frase mas extensa
                          "
;


//hallara tanto "frase mas extensa" como "frase"
$_POST['mensaje_del_usuario'] = "frase mas extensa";

//$_POST['mensaje_del_usuario'] = "frase";


$palabras=explode("\n",$palabras_inaporpiadas);

foreach(
$palabras as $valor){

echo 
substr_count($valor,$_POST['mensaje_del_usuario'])."<br />";


  #4 (permalink)  
Antiguo 10/06/2010, 09:17
 
Fecha de Ingreso: junio-2010
Mensajes: 6
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: bloquear ingreso de palabras en foro con php

Muchas Gracias.

Etiquetas: bloqueo, palabras, foros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:14.