Autor
|
Tema: Filtro de palbrotas (Leído 10,440 veces)
|
neopuerta360
Desconectado
Mensajes: 240
La mejor comunidad de neopets
|
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
|
|
|
En línea
|
|
|
|
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.
|
|
|
En línea
|
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
|
|
|
neopuerta360
Desconectado
Mensajes: 240
La mejor comunidad de neopets
|
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
|
|
|
En línea
|
|
|
|
Shell Root
|
Entonces, podría ser algo como esto, PoC.txtfunction OpenFile(){ $sFilePath = 'PoC.txt'; $sContentFile = ''; $sFile = file($sFilePath); foreach($sFile as $sLine){ $sContentFile .= $sLine; } return $sContentFile; } function Asterisks($sWord){ $i = 0; $sAsterisks = ''; for($i=0; $i<$sSize; $i++){ $sAsterisks .= '*'; } return $sAsterisks; } function SearchWord($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);
put, cabro, coñ
Resultado:Hola, como estas hijo de ***a,******n,****o. Feliz día.
|
|
« Última modificación: 15 Septiembre 2010, 18:53 pm por Shell Root »
|
En línea
|
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
|
|
|
neopuerta360
Desconectado
Mensajes: 240
La mejor comunidad de neopets
|
como hago para que funcione en mi pagina?, hago esto:
<? @include("PoC.txt"); ?>
Y para bloquear las palabras agrego esto:
$sCadena = 'perra'; $sCadena = 'marica';
|
|
|
En línea
|
|
|
|
neopuerta360
Desconectado
Mensajes: 240
La mejor comunidad de neopets
|
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
|
|
« Última modificación: 15 Septiembre 2010, 19:22 pm por neopuerta360 »
|
En línea
|
|
|
|
Shell Root
|
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. $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.
|
|
« Última modificación: 15 Septiembre 2010, 20:15 pm por Shell Root »
|
En línea
|
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
|
|
|
Nakp
casi es
Ex-Staff
Desconectado
Mensajes: 6.336
he vuelto :)
|
solo una sugerencia... en vez de usar "SI" y "NO" usa true/false que para eso existen no se necesita ni comprobar con ==, basta esto: if($FiltroGroserias)
ademas, cambia ereg por preg_match y preg_replace, su uso es obsoleto
|
|
|
En línea
|
Ojo por ojo, y el mundo acabará ciego.
|
|
|
neopuerta360
Desconectado
Mensajes: 240
La mejor comunidad de neopets
|
Me podrian arreglar mejor el codigo que ise por favor . 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?
|
|
« Última modificación: 15 Septiembre 2010, 21:17 pm por neopuerta360 »
|
En línea
|
|
|
|
neopuerta360
Desconectado
Mensajes: 240
La mejor comunidad de neopets
|
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>
|
|
|
En línea
|
|
|
|
|
|