Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

BlackMix

[ Bloqueio de Nomes ] com PHP e PDO Mysql

Recommended Posts

Olá galera.. depois de anos no site venho aqui postar um código modificado por mim por que queria poder editar os

nomes pelo banco de dados então acabei editando da minha maneira esse código..

 

No banco voces usa campo: Nome, Nomes, ativo

 

Em nome seria o nome da função.

Em Nomes seria os nomes bloqueados.

E ativo se a função está ativado ou não :p

 

Não vou postar a conexão com banco de dados por que aqui no site tem varias maneiras então basta usar uma delas.

 

vamos aos código:

function filtro_palavras($msg)
    {
global $settings;
        $poibid =array();
	    $poibid = explode(',',$settings['nomesfeios']);
        $num = count($poibid);
        for ($i=0; $i<$num; $i++)
        {  
        $palavra=$poibid[$i];
 
        $msg = str_ireplace($poibid[$i],'<span title="palavra proibida!">[**] *PARTY* [**]</span>',$msg);
 
        }
         
    return $msg;
}

$settings['nomesfeios'] é uma função minha de configurações que procura na tabela minhas função ou configurações se elas estão

ativas ou não..

 

[**] *PARTY* [**] é o Nome que aparece no lugar do nome bloqueado.

 

$poibid = explode(',',$settings['nomesfeios']); é aonde vamos separar os nomes por ,

 

$num = count($poibid); vamos contar quantos nomes tem.

 

for ($i=0; $i<$num; $i++) vamos atribuir o i para ser o valor de cada nome no banco.

 

$poibid[$i] é o valor das palavras.. eu nem sei por que deixei isso aqui > $palavra=$poibid[$i];

 

bem é isso.. vi que tinha varias pessoas atrás de um código desses pronto então está aí para quem quiser..

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Duas sugestões:

 

1. Evite usar variáveis globais. Prefira passar parâmetros para as funções;

 

2. Não precisa fazer um loop. A função str_replace (e str_ireplace também) aceitam arrays como parâmetros

Compartilhar este post


Link para o post
Compartilhar em outros sites

Duas sugestões:

 

1. Evite usar variáveis globais. Prefira passar parâmetros para as funções;

 

2. Não precisa fazer um loop. A função str_replace (e str_ireplace também) aceitam arrays como parâmetros

 

sobre global eu já estava ligado a um tempo..

 

str_replace então aceita vim do banco como arrays ? eita então tenho muito o que aprender xD

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sobre global eu já estava ligado a um tempo..

é sempre arriscado confiar em variáveis globais. Quando se tem muitas delas, a gente pode, acidentalmente, sobrescrever o valor de alguma delas. Por isso é bom evitá-las ao máximo

 

 

str_replace então aceita vim do banco como arrays ? eita então tenho muito o que aprender xD

 

Yep. Olha um simples exemplo:

php > $palavroes = [ 'nome feio', 'nome mais feio ainda' ];
php > $str = 'string com nome feio e um nome mais feio ainda';
php > $str = str_ireplace( $palavroes, '***', $str );
php > var_dump( $str );
string(23) "string com *** e um ***"
php >

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

é sempre arriscado confiar em variáveis globais. Quando se tem muitas delas, a gente pode, acidentalmente, sobrescrever o valor de alguma delas. Por isso é bom evitá-las ao máximo

 

 

 

Yep. Olha um simples exemplo:

php > $palavroes = [ 'nome feio', 'nome mais feio ainda' ];
php > $str = 'string com nome feio e um nome mais feio ainda';
php > $str = str_ireplace( $palavroes, '***', $str );
php > var_dump( $str );
string(23) "string com *** e um ***"
php >

 

Hmm.. eu só tenho 4 variável global no meu projeto de site de animes..

 

sobre isso que você acabou de postar eu tenho salvo no banco os nomes assim>>

 

nome1,nome2,nome3,nome4,nome5,nome6

 

nesse caso eu teria que colocar 'nome2','nome3' ? e depois chamar eles ?

 

já até tentei mas dá erro.. T_T" kkk

 

Obs;; já que voce é moderador poderia editar meu perfil aqui no site? não consigo acessar ele da erro na URL

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesse caso eu teria que colocar 'nome2','nome3' ? e depois chamar eles ?

Não.

A variável $poibid já é o array com as palavras do filtro (equivalente ao array $palavroes que eu criei).

Basta usá-la diretamente em str_ireplace, sem necessidade do loop

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.