Filtro de palbrotas

Iniciado por neopuerta360, 15 Septiembre 2010, 17:11 PM

0 Miembros y 4 Visitantes están viendo este tema.

neopuerta360

como hago para hacer que cuando alguien ponga una palabrota en un sistema de comentario salga un error y que diga "Cuidado con tu lenguaje".

Quisiera saber cual es el codigo y que no use base de datos Mysql


:rolleyes:

Shell Root

No te gustan las bases de datos, ehh!
Se puede con un archivo *.txt?

Se debe de tener una especie de base de datos, porque no en todas partes esas "palabrotas" son grocerias, tan solo son palabras comunes.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

neopuerta360

Cita de: Shell Root en 15 Septiembre 2010, 18:04 PM
No te gustan las bases de datos, ehh!
Se puede con un archivo *.txt?

Se debe de tener una especie de base de datos, porque no en todas partes esas "palabrotas" son grocerias, tan solo son palabras comunes.

si se puede con un archivo TXT.


Lo que pasa es que no se trabajar con base de datos Mysql y depaso no me funciona en miarroba

Shell Root

#3
Entonces, podría ser algo como esto,
PoC.txt
Código (php) [Seleccionar]
function OpenFile(){
   $sFilePath       = 'PoC.txt';
   $sContentFile    = '';
   $sFile           = file($sFilePath);
   
   foreach($sFile as $sLine){
       $sContentFile .= $sLine;
   }
   
   return $sContentFile;
}


function Asterisks($sWord){
   $i             = 0;
   $sSize         = strlen($sWord);
   $sAsterisks    = '';
   
   for($i=0; $i<$sSize; $i++){
       $sAsterisks .= '*';
   }
   
   return $sAsterisks;
}


function SearchWord($sWord, $sText){
   return str_replace($sWord, Asterisks($sWord), $sText);
}


function DeleteWord($sCadena){
   $sExplode = explode(',', OpenFile());
   
   for($i=0; $i< sizeof($sExplode); $i++){
       $sCadena = SearchWord($sExplode[$i], $sCadena);
   }
   return $sCadena;
}


$sCadena = 'Hola, como estas hijo de p**a, cabron, coño. Feliz día.';
echo DeleteWord($sCadena);

Código (PoC) [Seleccionar]
put, cabro, coñ
Resultado:
Código (PoC) [Seleccionar]
Hola, como estas hijo de ***a,******n,****o. Feliz día.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

neopuerta360

como hago para que funcione en mi pagina?, hago esto:

<?
@include("PoC.txt");
?>

Y para bloquear las palabras agrego esto:

$sCadena = 'perra';
$sCadena = 'marica';


neopuerta360

#5
tengo este codigo que hice pero no se si esta bueno:

configuracion.php


<?

$FiltroGroserias = "SI";   // Activar filtro de malas palabras (SI / NO)

$alerta[1] = "Por favor, usa un lenguaje mas decente.";

// Palabras no permitidas

$palabrotas[] = "pinche";
$palabrotas[] = "pendejo";
$palabrotas[] = "puto";
$palabrotas[] = "marica";
$palabrotas[] = "chinga";
$palabrotas[] = "coño";
$palabrotas[] = "cabron";

?>






<?
// Filtro de malas palabras

if($FiltroGroserias == "SI") {
for($i = 0; $i < sizeof($palabrotas); $i++) {
if(ereg($palabrotas[$i], $nombre) OR ereg($palabrotas[$i], $email) OR ereg($palabrotas[$i], $mensaje)) {
$error[] = $alerta[1];
}
?>




Esta bien el codigo  :D

Shell Root

#6
De que puda estar bien el código, puede ser, solo que para ingresar nuevas palabras, debes de abrir los fuentes y agregarlos en el vector. Si usas el código que te deje, podes agregar cuantas palabras quieras, dentro del archivo de texto. Es más fácil.


PD: No entiendo el uso de los vectores de está forma.
Código (php) [Seleccionar]
$alerta[1] = "Por favor, usa un lenguaje mas decente.";
Igual, siempre contendra ese valor, y no hay más mensajes de alerta -por el momento-, así que podrías reemplazarlo con una variable.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Nakp

solo una sugerencia... en vez de usar "SI" y "NO" usa true/false que para eso existen :P

no se necesita ni comprobar con ==, basta esto:

Código (php) [Seleccionar]
if($FiltroGroserias)

ademas, cambia ereg por preg_match y preg_replace, su uso es obsoleto
Ojo por ojo, y el mundo acabará ciego.

neopuerta360

#8
Me podrian arreglar mejor el codigo que ise por favor :D.

Ustedes dicen asi

configuracion.php



<?
$alerta[1] = "No se acepta esta palabra [$palabrotas]";

// Palabras no permitidas

$palabrotas[] = "pinche";
$palabrotas[] = "pendejo";
$palabrotas[] = "puto";
$palabrotas[] = "marica";
$palabrotas[] = "chinga";
$palabrotas[] = "coño";
$palabrotas[] = "cabron";

?>






<?
// Filtro de malas palabras

if($FiltroGroserias) {
for($i = 0; $i < sizeof($palabrotas); $i++) {
if(preg_match($palabrotas[$i], $nombre) OR preg_match($palabrotas[$i], $email) OR preg_match($palabrotas[$i], $mensaje)) {
$error[] = $alerta[1];
}
?>



Asi esta mejor el godigo?

neopuerta360

Lo que pasa es que yo no se mucho de php y otros lenguaje por que todavia no e hecho un curso,Y tambien por que mi computadora de daño y esta es un WINDOWS 98 de la AGENCIA por eso yo les hago muchas preguntas por que es una de las unicas paginas que me abre, entienden?

<b>Lo que quiero decir es que no puedo buscar guias en google como por ejemplo.</b>