Léo95 1 Denunciar post Postado Junho 21, 2014 Como faço pra censurar uma palavra exata? Por exemplo: "PUTA" eu irei criar o preg_replace para substituir para "$@#%".Mais o problema é isso: comPUTAdor por exemplo tem "PUTA" no meio. Ja tentei com str_repalce e preg_replace e sempre captura. Como faço pra não capturar ? Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Junho 22, 2014 public static function remove_sqlinject (){$bloquiados = array("&","%","'","¨","+","$","*","--",";","\\","select","from ","insert ","delete ","where ","drop table","show tables","<script","´","%0a","%0d","http","ftp","ssl","https","smtp","pop3",":","Content-Type:","bcc:","to:","cc:","Autoreply:","from","select","insert","delete","where","drop table","show tables","alert","applet","audio","basefont","base","behavior","bgsound","blink","body","embed","expression","form","frameset","frame","head","html","ilayer","iframe","input","isindex","layer","link","meta","object","plaintext","style","script","textarea","title","video","xml","xss");foreach($_POST as $valor) {foreach($bloquiados as $sqlinject) {if(@substr_count(strtolower($valor), strtolower($sqlinject)) > 0):die ("<div class='error'>ATENÇÃO ! Caracteres como:<br><strong>&,%,',¨,+,$,*,--,;,\\,select,from,insert,delete <br>,where,drop table,show tables.</strong><br>Não são permitidos para seguraça contrar possiveis hacker's </div>");addslashes($valor);strip_tags($valor);endif;}foreach($_GET as $valor) {foreach($bloquiados as $sqlinject) {if(@substr_count(strtolower($valor), strtolower($sqlinject)) > 0):die ("<div class='error'>ATENÇÃO ! Caracteres como:<br><strong>&,%,',¨,+,$,*,--,;,\\,select,from,insert,delete <br>,where,drop table,show tables.</strong><br>Não são permitidos para seguraça contrar possiveis hacker's </div>");addslashes($valor);strip_tags($valor);endif;}}} } tente assim Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Junho 22, 2014 #2 Bebeu??? #1 Use strpos para filtrar antes de substituir <?php $blocked_words="melancia,bosta";//list of offensive word $review_from_user ="Este é um texto para testar o script PHP que bloqueia palavras num texto. Ele deve bloquear as palavras melancia e bosta."; //review from user $blocked_words_expo = explode(",", $blocked_words); foreach($blocked_words_expo as $rmv) { if(strpos($review_from_user,$rmv)==true) { $review_from_user = str_replace($rmv,'%$#%$*',$review_from_user); } } echo $review_from_user; Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Junho 22, 2014 Williams Duarte vai toma no seu cú porra todo post que tento ajuda você vem enche o saco já falei com os moderadores e nada que se dane então niguem pediu sua opnião se lascar vai_|_ Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Junho 22, 2014 #3 Não baixe o nível. Veja o que você postou, um código para sql injection, preste atenção na pergunta antes de postar qualquer código tosco no fórum, eu e outros membros estamos aqui ainda para ajudar também, muitos caras bons já abondaram o barco, e se outros geeks saírem o fórum volta a 10 anos atrás. E os mais novos ficam a ver navios, ou melhor ficam a ver códigos de sql injection invés de um código que simplesmente faz a troca de uma string pela outra. Compartilhar este post Link para o post Compartilhar em outros sites
Léo95 1 Denunciar post Postado Junho 22, 2014 #2 Bebeu??? #1 Use strpos para filtrar antes de substituir <?php $blocked_words="melancia,bosta";//list of offensive word $review_from_user ="Este é um texto para testar o script PHP que bloqueia palavras num texto. Ele deve bloquear as palavras melancia e bosta."; //review from user $blocked_words_expo = explode(",", $blocked_words); foreach($blocked_words_expo as $rmv) { if(strpos($review_from_user,$rmv)==true) { $review_from_user = str_replace($rmv,'%$#%$*',$review_from_user); } } echo $review_from_user; Não adiantou por exemplo a Palavra "ComPUTAdor" ficou "Com%$#%$dor" por conter palavra "P.U.T.A!" no meio, não consigo resolver. Compartilhar este post Link para o post Compartilhar em outros sites
paulinhosupriano 103 Denunciar post Postado Junho 23, 2014 Amigo o que deseja fazer e similar a uma lista de bloqueio como e utilizado em servidores para bloqueio de palavras chaves, então, será um serviço que quase impossível de moderar sempre acharão maneiras de modificar. Recomendo que utilize um campo de ativo ou aceito onde você ler a noticias. modifica caso tenha sido ofensivo ou excluir. Será um semelhante a um sistema de comentários. Compartilhar este post Link para o post Compartilhar em outros sites
Playerbr 21 Denunciar post Postado Junho 23, 2014 Adicione espaços antes e depois na $rmv. $rmv=' '.$rmv.' '; if(strpos($review_from_user,$rmv)===true) { $review_from_user = str_replace("",'%$#%$*',$review_from_user); } Na conferência do strpos use 3 sinais de igual, se não, caso a palavra que você deseja retirar esteja no inicio da string, ela cai na posição '0' e na comparação passa a ser falsa, logo não é removida. Compartilhar este post Link para o post Compartilhar em outros sites