Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: neopuerta360 en 15 Septiembre 2010, 17:11 pm



Título: Filtro de palbrotas
Publicado por: neopuerta360 en 15 Septiembre 2010, 17:11 pm
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:


Título: Re: Filtro de palbrotas
Publicado por: 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.


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 15 Septiembre 2010, 18:39 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


Título: Re: Filtro de palbrotas
Publicado por: Shell Root en 15 Septiembre 2010, 18:50 pm
Entonces, podría ser algo como esto,
PoC.txt
Código
  1. function OpenFile(){
  2.    $sFilePath       = 'PoC.txt';
  3.    $sContentFile    = '';
  4.    $sFile           = file($sFilePath);
  5.  
  6.    foreach($sFile as $sLine){
  7.        $sContentFile .= $sLine;
  8.    }
  9.  
  10.    return $sContentFile;
  11. }
  12.  
  13.  
  14. function Asterisks($sWord){
  15.    $i             = 0;
  16.    $sSize         = strlen($sWord);
  17.    $sAsterisks    = '';
  18.  
  19.    for($i=0; $i<$sSize; $i++){
  20.        $sAsterisks .= '*';
  21.    }
  22.  
  23.    return $sAsterisks;
  24. }
  25.  
  26.  
  27. function SearchWord($sWord, $sText){
  28.    return str_replace($sWord, Asterisks($sWord), $sText);
  29. }
  30.  
  31.  
  32. function DeleteWord($sCadena){
  33.    $sExplode = explode(',', OpenFile());
  34.  
  35.    for($i=0; $i< sizeof($sExplode); $i++){
  36.        $sCadena = SearchWord($sExplode[$i], $sCadena);
  37.    }
  38.    return $sCadena;
  39. }
  40.  
  41.  
  42. $sCadena = 'Hola, como estas hijo de p**a, cabron, coño. Feliz día.';
  43. echo DeleteWord($sCadena);
Código
  1. put, cabro, coñ
Resultado:
Código
  1. Hola, como estas hijo de ***a,******n,****o. Feliz día.


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 15 Septiembre 2010, 19:07 pm
como hago para que funcione en mi pagina?, hago esto:

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

Y para bloquear las palabras agrego esto:

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



Título: Re: Filtro de palabrotas
Publicado por: neopuerta360 en 15 Septiembre 2010, 19:20 pm
tengo este codigo que hice pero no se si esta bueno:

configuracion.php

Código:
<?

$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";

?>




Código:
<?
// 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


Título: Re: Filtro de palbrotas
Publicado por: Shell Root en 15 Septiembre 2010, 19:47 pm
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
  1. $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.


Título: Re: Filtro de palbrotas
Publicado por: Nakp en 15 Septiembre 2010, 20:08 pm
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
  1. if($FiltroGroserias)

ademas, cambia ereg por preg_match y preg_replace, su uso es obsoleto


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 15 Septiembre 2010, 20:31 pm
Me podrian arreglar mejor el codigo que ise por favor :D.

Ustedes dicen asi

configuracion.php


Código:
<?
$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";

?>



Código:

<?
// 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?


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 15 Septiembre 2010, 20:38 pm
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>


Título: Re: Filtro de palbrotas
Publicado por: Shell Root en 15 Septiembre 2010, 20:45 pm
Código:
[SNIP]

$FiltroGroserias = "true";

[SNIP]

Igual seguiria siendo una "string", ponedlo así,
Código
  1. $FiltroGroserias = false;
Y explicanos, para que esa variable?



...,Y tambien por que mi computadora de daño y esta es un WINDOWS 98 de la AGENCIA ...
FAIL!


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 15 Septiembre 2010, 20:52 pm
Asi como lo modifique? :D


Título: Re: Filtro de palbrotas
Publicado por: Shell Root en 15 Septiembre 2010, 21:06 pm
Seh, pero la cuestión es, por que usar esa variable?, es decir, para que la usas?. No entiendo su funcionamiento dentro del código.


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 15 Septiembre 2010, 21:19 pm
Seh, pero la cuestión es, por que usar esa variable?, es decir, para que la usas?. No entiendo su funcionamiento dentro del código.

Eso era si el usuario queria activar la funcion palabrotas.Ya que es un sistema de comentarios sin base de datos.

Pero ya le quite el codigo.


Título: Re: Filtro de palbrotas
Publicado por: ~ Yoya ~ en 15 Septiembre 2010, 21:38 pm
El source esta mal escrito, recuerda que estas usando expresiones regulares y no buscando una palabra dentro de un texto, este tiene su reglas aunque tu error se encuentra en que antes comenzar a escribir la Regexp, necesita comenzarlo con barra y al final igual.

Asi deberia de ir:
Código
  1. <?
  2. $alerta[1] = "No se acepta esta palabra [$palabrotas]";
  3.  
  4. // Palabras no permitidas
  5.  
  6. $palabrotas[] = '"/pinche/"';
  7. $palabrotas[] = '"/pendejo/"';
  8. $palabrotas[] = '"/puto/"';
  9. $palabrotas[] = '"/marica/"';
  10. $palabrotas[] = '"/chinga/"';
  11. $palabrotas[] = '"/coño/"';
  12. $palabrotas[] = '"/cabron/"';
  13.  
  14. ?>


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 15 Septiembre 2010, 22:32 pm
este seria el codigo:

configuracion.php


Código:
<?
$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/"';
?>

Luego donde recibira el comentario se pone el siguiente codigo, ejemplo: comentario-enviado.php:

Código:
<? 
@include("configuracion.php");
?>

Y en la misma pagina se pone el siguiente codigo:

Código:
<?php

// Filtro de malas palabras
if($FiltroGroserias){   foreach($palabrotas as $palabrotas)   {      if(preg_match($palabrotas, $nick) OR preg_match($palabrotas, $email) OR preg_match($palabrotas, $mensaje))   
   {         $error[] = $alerta[1];         
break;     
}   
}
}  ?>

Asi deberia ir el codigo no!


Título: Re: Filtro de palbrotas
Publicado por: ~ Yoya ~ en 15 Septiembre 2010, 23:13 pm
asi esta mejor xD.

Código
  1. <?php
  2. // Filtro de malas palabras
  3.  
  4. if($FiltroGroserias)
  5. {
  6.   foreach($palabrotas as $palabrotas)
  7.   {
  8.      if(preg_match($palabrotas, $nick) OR preg_match($palabrotas, $email) OR preg_match($palabrotas, $mensaje))
  9.      {
  10.         $error[] = $alerta[1];
  11.         break;
  12.      }
  13.   }
  14. }
  15.  
  16.  
  17. ?>

Trata de probar los códigos antes de preguntar.


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 15 Septiembre 2010, 23:37 pm
A Hora el codigo si esta bueno?


Título: Re: BBcode
Publicado por: neopuerta360 en 15 Septiembre 2010, 23:38 pm
otra pregunta para agregar textos e emoticones el codigo es asi:

BBcode.php

Código:
// BBcode

function Remplazar() {
global $mensaje;
$mensaje = str_replace("[:)]","<img src=\"ikon/sonrisa.gif\">", $mensaje);
$mensaje = str_replace("[b]","<b>",$mensaje) ;
$mensaje = str_replace("[/b]","</b>",$mensaje) ;

return;
}


Cual es elcodigo javascript para agregar los codigos ejemplo: [imagen]url de la imagen[/imagen]


Título: Re: Filtro de palbrotas
Publicado por: ~ Yoya ~ en 15 Septiembre 2010, 23:48 pm
Citar
Cual es elcodigo javascript para agregar los codigos ejemplo: [imagen]url de la imagen[/imagen]
Ps estudia javascript, no se te puede decir todo xD.


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 15 Septiembre 2010, 23:51 pm
no sabes cual es el codigo?


Título: Re: Filtro de palbrotas
Publicado por: ~ Yoya ~ en 16 Septiembre 2010, 00:14 am
Citar
no sabes cual es el codigo?
Quieres que te pase un codigo¿?
Que estas haciendo aver? programando o en la búsqueda de códigos?
No pruebas lo que haces, no programas nada, solo veo que pides código... No me imagino como te harás para reparar vulnerabilidades xD.


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 16 Septiembre 2010, 00:40 am
Estoy haciendo un sistema de comentarios sin base de datos  Mysql entiendes.

Y lo que pasa es que no puedo probar los codigos por que donde tengo el honstin no abre la pagina por que este es un WINDOWS 98 entiendes? lo que quiero decir es que es muy obsoleta, Todavia estoy esperando que la computadora me la compren por que la mia se daño con un virus y esta es una de la "AGENCIA DE LOTERIAS" sabes que es eso?


Título: Re: Filtro de palbrotas
Publicado por: ~ Yoya ~ en 16 Septiembre 2010, 00:53 am
http://phpya.com.ar/simulador/simulador.php?cod=1

Para que pruebes tus sources...


Título: Re: Filtro de palbrotas
Publicado por: Franki en 16 Septiembre 2010, 00:58 am
neopuerta360 me parece bien que estés intentando aprender PHP haciendo un sistema de comentarios, pero te aconsejo que antes de empezar con proyectitos como el que estás haciendo intentes leer algún manual/tutorial/libro para aprender las caracteristicas básicas del lenguaje y tener unas bases sobre la que ir construyendo.

Además de eso, aprende a utilizar la API oficial de PHP, ahí vienen definidas todas las funciones nativas de PHP, con muchos ejemplos. Eso te evitará las preguntas constantes.

Sino puedes probar los ejemplos será mejor que te esperes a que te compren el nuevo ordenador, ya que en un windows 98 poco vas a poder hacer, y nosotros no estamos aquí para ir probando tus códigos a ver si funcionan o no funcionan.

Aprender a depurar aplicaciones es una característica importante en un programador. Así que te aconsejo que las pruebes tu mismo cuando te sea posible y vayas aprendiendo lo que significan los Warnings, Notices y demás fallos/errores.

Aprovecha este tiempo para leer más que para programar. Ánimo con el aprendizaje.



Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 16 Septiembre 2010, 01:27 am
Entonces detengo la pagina que estoy haciendo.

Tu no me podrias dar un mini curso de php en linea todos los dias en tu blog. Ya que esa pagina la abre bien!


Título: Re: Filtro de palbrotas
Publicado por: Shell Root en 16 Septiembre 2010, 01:35 am
Tu no me podrias dar un mini curso de php en linea todos los dias en tu blog. Ya que esa pagina la abre bien!
OMG!, es un sarcasmo verdad?


Título: Re: Filtro de palbrotas
Publicado por: Franki en 16 Septiembre 2010, 01:41 am
Jajajajajajaja, hombre, tengo seis horas al día de clase y cinco de trabajo. Así que más bien no.

Lo que puedes hacer es leer las entradas dedicadas a PHP, que aunque sea un curso introductorio está pensado para estudiarlo en pocos días y se centra más en lo que son las características del lenguaje de en lo que puedes hacer con él. Pero sirve perfectamente para tener unas bases.

Tambien puedes buscar en google, que seguro que encuentras libros y tutoriales mejor explicados. De todas formas cualquier duda la puedes preguntar en el foro.


Título: Re: Filtro de palabrotas
Publicado por: neopuerta360 en 16 Septiembre 2010, 01:54 am
OK Franki lo que pasa es que google no me abre y todas las paginas tampoco.Si me habrieran no les pidiera su ayuda. Pues lo que quiero decir es que cuando tengas tiempo publiques un mini curso en tu blog.


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 16 Septiembre 2010, 01:57 am
Tu no me podrias dar un mini curso de php en linea todos los dias en tu blog. Ya que esa pagina la abre bien!
OMG!, es un sarcasmo verdad?

No es un sarcasmo por que?


Título: Re: Filtro de palbrotas
Publicado por: Franki en 16 Septiembre 2010, 02:05 am
Ya tienes publicado algunas cosas que puedes ir leyendo, te pongo los enlaces directos a las entradas, si se considera SPAM, me avisais y los borro:

Introduccion (http://parasitovirtual.wordpress.com/2010/06/08/curso-php-introduccion/)

Variables y tipos de datos (http://parasitovirtual.wordpress.com/2010/06/08/curso-php-capitulo-1-variables-y-tipos-de-datos/)

Operadores (http://parasitovirtual.wordpress.com/2010/06/08/curso-php-capitulo-2-operadores/)

Estructuras de control (http://parasitovirtual.wordpress.com/2010/06/08/curso-php-capitulo-3-estructuras-de-control/)

Funciones (http://parasitovirtual.wordpress.com/2010/06/08/curso-php-capitulo-4-funciones/)

Cadenas y expresiones regulares (http://parasitovirtual.wordpress.com/2010/06/08/curso-php-capitulo-5-cadenas-y-expresiones-regulares/)

NOTA: En esta entrada las expresiones regulares utilizadas estan deprecadas.

Arrays (http://parasitovirtual.wordpress.com/2010/06/09/curso-php-capitulo-6-arrays/)

Formularios (http://parasitovirtual.wordpress.com/2010/06/09/curso-php-capitulo-7-formularios/)

Programacion orientada a objetos. Parte I (http://parasitovirtual.wordpress.com/2010/06/14/curso-php-capitulo-8-programacion-orientada-a-objetos/)

Programacion orientada a objetos. Parte II (http://parasitovirtual.wordpress.com/2010/06/15/curso-php-capitulo-8-programacion-orientada-a-objetos-iiii/)

Lectura y escritura de ficheros (http://parasitovirtual.wordpress.com/2010/06/15/curso-php-capitulo-9-lectura-y-escritura-de-ficheros/)

Subida y descarga de ficheros (http://parasitovirtual.wordpress.com/2010/06/15/curso-php-capitulo-10-subida-y-descarga-de-ficheros/)

Sesiones y cookies (http://parasitovirtual.wordpress.com/2010/06/16/curso-php-capitulo-11-sesiones-y-cookies/)

Interactuando con MySQL (http://parasitovirtual.wordpress.com/2010/07/02/curso-php-capitulo-12-interactuando-con-mysql/)

Control de excepciones (http://parasitovirtual.wordpress.com/2010/07/09/curso-php-capitulo-13-control-de-excepciones/)

De todas formas en www.php.net (http://www.php.net) tienes un manual mucho más completo.


Título: Re: Filtro de palbrotas
Publicado por: ~ Yoya ~ en 16 Septiembre 2010, 02:07 am
Mira esta clase xD, así el source queda mas ordenado xD.


Código
  1. <?php
  2.  
  3. class filtro_palabras {
  4.  
  5. private $texto;
  6. private $filtrar = array();
  7. private $reemplazo;
  8. private $result;
  9.  
  10. public function text($palabra)
  11. {
  12.   $this->texto = $palabra;
  13. }
  14.  
  15. public function filtro($filtrar)
  16. {
  17.   $result = null;
  18.  
  19.   $this->filtrar[] = $filtrar;
  20.  
  21.   foreach($this->filtrar as $filtrarr)
  22.   {
  23.      $result .= $filtrarr."|";
  24.   }
  25.   $result = "[".$result."]";
  26.   $this->result = $result;
  27.  
  28. }
  29.  
  30. public function reemplazar($reemplazo)
  31. {
  32.   $this->reemplazo = $reemplazo;
  33. }
  34.  
  35. public function resultado()
  36. {  
  37.  
  38. $texto = preg_replace("/".$this->result."/i",$this->reemplazo,$this->texto);
  39.  
  40. return $texto;
  41. }
  42.  
  43. }
  44.  
  45. ?>

Uso:
Código
  1. <?php
  2.  
  3. include_once('filtro.php');
  4.  
  5. $filtro = new filtro_palabras;
  6. $filtro->text('xD l xs 4 5asa78 as dxokjnae sl pke aojo');
  7. $filtro->filtro('a');
  8. $filtro->filtro('4');
  9.  
  10. $filtro->reemplazar('*');
  11.  
  12. echo $filtro->resultado();
  13.  
  14. ?>

Salida:
Código:
xD l xs * 5*s*78 *s dxokjn*e sl pke *ojo


Título: Re: Filtro de palbrotas
Publicado por: neopuerta360 en 16 Septiembre 2010, 02:23 am
Gracias por tu ayuda Franki, Ha franki para que sepas solo se me habren paginas que sean asi https:// no asi http://