ORisonho 0 Denunciar post Postado Fevereiro 23, 2009 Olá pessoal... estou começando com o PHP e já tenho minha primeira "GRANDE DÚVIDA", ela pode ser até meio que BOBA, mas não deixa de ser, bom...vamos LÁ: Eu estou construindo um simples SISTEMA DE COMENTÁRIOS e estou querendo colocar AUTENTICAÇÃO ANTI-PALAVÃO, o codigo esta ai ABAIXO e como vcs podem ver eu já fiz uma AUTENTICAÇÃO PARA CAMPOS VAZIOS, minha duvida é a SEGUINTE: Como existe VARIOS PALAVRÕES eu quero colocar alguns deles no meu codigo, mas como podem ver eu já fiz uma autentiação para a palavra "palavrão" (EXEMPLO), mas agora quero colocar MAIS PALAVRAS, eu terei que criar uma VARIAVEL para cada uma e depois ter que criar um IF para cada um dos campos (são 3 CAMPOS NO TOTAL, nome, email, mensagem)??? Sei que deve ter uma maneira de eu JUNTAR as palavras para que eu possa dar um comando, OU ALGUNS sem precisar criar VARIOS E CANSATIVOS comandos. <?php mysql_connect("localhost","root","")or die("Não foi possivel conectar com o servidor<br><br>"); //echo "Você esta conectado ao servidor<br><br>"; mysql_select_db("coment_sistem") or die ("Não foi possivel conectar ao Banco de Dados<br><br>"); //echo "Você esta conectado ao Banco de Dados<br><br>"; ?> <?php $nome = $_POST['nome']; $email = $_POST['email']; $mensagem = $_POST['mensagem']; $data = date("Y-m-d"); //autenciação ANTI-PALAVRÃO $censura = "palavrao"; //palavra usada para ILUSTRAR a questão if ($nome == $censura) { echo "Não é permitido palavras de baixo calão !!"; exit(); } if ($email == $censura) { echo "Não é permitido palavras de baixo calão !!"; exit(); } if ($mensagem == $censura) { echo "Não é permitido palavras de baixo calão !!"; exit(); } //Autenticação para campos VAZIOS if ($nome == null) { echo "Preencha o campo Nome corretamente"; exit(); } if ($email == null) { echo "Preencha o campo Email corretamente"; exit(); } if ($mensagem == null) { echo "Preencha o campo Mensagem corretamente"; exit(); } $inserir = mysql_query("insert into coment_sistem (nome,email,data,mensagem) values('$nome', '$email', '$data', '$mensagem')"); if ($inserir > 0) { echo "Comentário enviado com sucesso"; } else { echo "Não foi possivel o envio de seu Comentário"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 23, 2009 mas agora quero colocar MAIS PALAVRAS, eu terei que criar uma VARIAVEL para cada uma e depois ter que criar um IF para cada um dos campos (são 3 CAMPOS NO TOTAL, nome, email, mensagem)???Não... cria um array.. e valida os palavrões por ele.É algo complicado de se fazer, pois um palavrão, é diferente de Palavrão, que é diferente de PALAVRÃO.. Se lembre disso, mas não precisa de uma var para cada. Faça algo do tipo: $palavrao[0] = tal; $palavrao[1] = outro; Ai você valida, vendo se o bate com alguma posição desse vetor.. Compartilhar este post Link para o post Compartilhar em outros sites
Williams Duarte 431 Denunciar post Postado Fevereiro 23, 2009 Existe scripts já pronto no fórum e no laboratório, que filtra os palavrões da uma pesquisada! Agora o que você pode fazer é verificar a mensagem antes passando por uma moderação, é só fazer um script que te manda a msg para um e-mail e de lá mesmo você autoriza ou exclui o registro. há não ser que esta não possuíra controle http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
ORisonho 0 Denunciar post Postado Fevereiro 23, 2009 Não... cria um array.. e valida os palavrões por ele. É algo complicado de se fazer, pois um palavrão, é diferente de Palavrão, que é diferente de PALAVRÃO.. Se lembre disso, mas não precisa de uma var para cada. Faça algo do tipo: $palavrao[0] = tal; $palavrao[1] = outro; Ai você valida, vendo se o bate com alguma posição desse vetor.. Agradeço sua resposta, mas ainda tenho um apequena duvida, depois de criar as VARIAVEIS no exemplo que você me passou: $palavrao[0] = tal; $palavrao[1] = outro; Como eu as ENCAIXO no IF ? if ($nome == ?????? )// as INTERROGAÇÕES são para ilustrar a dúvida { echo "Não é permitido palavras de baixo calão !!"; exit(); } Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 23, 2009 ai você vai precisar de alguma função.. http://br.php.net/in_array confere se existe a palavra dentro do array de palavras não permitidas. Compartilhar este post Link para o post Compartilhar em outros sites
Skyo 1 Denunciar post Postado Fevereiro 23, 2009 // aqui você coloca os palavroes $palavrao = array("fdp", "vaca"); $novo_nome = str_replace($palavrao, "CENSURADO", $nome); Isso vai por CENSURADO nas palavras de baixo calão. Você pode usar a função in_array sim... Mas essa é uma outra forma, ai você poderia checar se existe CENSURADO na variável $novo_nome usando a função strpos e trabalhar com as suas condiçoes. Compartilhar este post Link para o post Compartilhar em outros sites
ORisonho 0 Denunciar post Postado Fevereiro 23, 2009 ai você vai precisar de alguma função.. http://br.php.net/in_array confere se existe a palavra dentro do array de palavras não permitidas. Peço desculpas por minha VAGA SABEDORIA mas seria possivel você me mostrar o codigo DENTRO do codigo que eu mostrei anteriormente, assim eu saberia como usa-lo da melhor maneira, desde já agradeço a atenção Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 23, 2009 Eu havia pensado em algo assim: <?php //autenciação ANTI-PALAVRÃO function removePalavrao( $texto ) { $censura = array('palavrao', 'frase'); $nome = explode(' ', $texto); foreach($nome as $palavra){ if (in_array($palavra, $censura)) { echo ' Não é permitido palavras de baixo calão !! '.$palavra; } } } $nome = 'palavrao que eu vou dizer'; removePalavrao( $nome ); echo '<br />'; $nome2 = 'outra frase com outro palavrao'; removePalavrao( $nome2 ); ?> Está bem simples, talvez até de mais.. sei lá..vê se te dá uma idéia ai. A solução do Skyo é muito boa tb.. Compartilhar este post Link para o post Compartilhar em outros sites
ORisonho 0 Denunciar post Postado Fevereiro 23, 2009 Agradeço por sua ajuda e estarei INCLUINDO no meu código para poder ficar melhor, eu tenho só mais uma pergunta, mas essa já é outro assunto, HTML+PHP, esse codigo do SISTEMA DE COMENTARIOS é bem simples, apenas 2 arquivos .php, um é o formulário e outro "POSTA", a minha duvida é: Como eu faço para poder colocar uma classe CSS, ou mudar a FONT para na hora na parte de POST, entende? Pois nesse código mesmo que eu mandei para vcs é a parte de POST, como podem ver é feito em PHP e eu não sei como INCLUIR funções do HTML do tipo FONT ou CLASS do CSS, outras funções eu sei, do tipo (<br><strong>), mas nessa hora de INCLUIR uma função HTML junto com o PHP para dar uma ESTETICA melhor a página eu ainda não sei. Eu já manjo de HTML por isso estou me complicando na hora de FUNDIR o HTML com o PHP. Antes de mais nada agradeço a atenção. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 23, 2009 você lembrou de chamar o css? <link href="./css/main.css" rel="stylesheet" type="text/css" />ou vai usar interno: <style type="text/css"> .classe { propriedade:valor; } </style>Uma coisa que você pode fazer para facilitar a tua vida, é não fazer o php imprimir HTML desncessariamente.veja... em vez de fazer algo como: <?php echo '<tr> <td class="classe">'.$var.'<td> </tr>'; ?>Prefira://instruções normais.. ?> <tr> <td class="classe"><?php echo $var; ?></td> </tr> <?php //continuação normalmescle o php com o HTML, dentro, no meio dele.. (por enqnto.. linguagem estruturada.. html bombado..)alguns padrões de programação não gostam dessa prática.. mas acho que todo mundo começa assim. Compartilhar este post Link para o post Compartilhar em outros sites
ORisonho 0 Denunciar post Postado Fevereiro 23, 2009 Ok, entendi, mas como eu colocaria isso dentro desse seguinte codigo? <?php $nome = $_POST['nome']; $email = $_POST['email']; $mensagem = $_POST['mensagem']; $data = date("Y-m-d"); ?> Como pode ver é esse codigo que POSTA o que foi ESCRITO no FORMULÁRIO, nesse caso eu teria que colocar o HTML dentro desse codigo, como? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 23, 2009 Cara... esse código ai só atribui variáveis... <?php $nome = $_POST['nome']; $email = $_POST['email']; $mensagem = $_POST['mensagem']; $data = date("Y-m-d"); ?> Nome: <?php echo $nome; ?> <br /> Email: <?php echo $email; ?> Compartilhar este post Link para o post Compartilhar em outros sites
ORisonho 0 Denunciar post Postado Fevereiro 23, 2009 Cara... esse código ai só atribui variáveis... <?php $nome = $_POST['nome']; $email = $_POST['email']; $mensagem = $_POST['mensagem']; $data = date("Y-m-d"); ?> Nome: <?php echo $nome; ?> <br /> Email: <?php echo $email; ?> Desculpe-me minha falta de atenção, o codigo que eu era para ter lhe mandado é o seguinte: <?php $sql = "select * from br_noticia_01 order by id desc"; $executar = mysql_query($sql); while ($exibir = mysql_fetch_array($executar)) {; echo "Nome: ".$exibir ['nome']; echo "<br/>"; echo "Email: ".$exibir ['email']; echo "<br/>"; echo "".$exibir ['data']; echo "<br/>"; echo "Mensagem: ".$exibir ['mensagem']; echo "<br><br>"; } ?>Tentei colocar o codigo da maneira que você me explicou, mas não tive sucesso. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 23, 2009 uai.. <?php $sql = "select * from br_noticia_01 order by id desc"; $executar = mysql_query($sql); while ($exibir = mysql_fetch_array($executar)) { ?> ai basta fazer HTML normalmente.. apenas substituindo oq você quer q o php imprima por <?php echo $var ?> Nome: <?php echo $exibir ['nome']; ?> <br/> Email: <?php echo $exibir ['email']; ?> <br/> <?php echo $exibir ['data']; ?> <br/> Mensagem: <?php echo $exibir ['mensagem']; ?> <br><br> <?php } ?> Compartilhar este post Link para o post Compartilhar em outros sites
ORisonho 0 Denunciar post Postado Fevereiro 23, 2009 uai.. <?php $sql = "select * from br_noticia_01 order by id desc"; $executar = mysql_query($sql); while ($exibir = mysql_fetch_array($executar)) { ?> ai basta fazer HTML normalmente.. apenas substituindo oq você quer q o php imprima por <?php echo $var ?> Nome: <?php echo $exibir ['nome']; ?> <br/> Email: <?php echo $exibir ['email']; ?> <br/> <?php echo $exibir ['data']; ?> <br/> Mensagem: <?php echo $exibir ['mensagem']; ?> <br><br> <?php } ?> Agradeço MUITO a atenção e o IMASTERS será um lugar onde aprenderei muito ainda consequi fazer muitas coisas as quais não sabia apenas produzindo esse humilde SISTEMA DE COMENTÁRIOS e espero melhora-lo, mas mesmo assim eu não consegui aplicar o HTML como você me disse, o máximo que eu consegui fazer foi o seguinte: $sql = "select * from br_noticia_01 order by id desc"; $executar = mysql_query($sql); while ($exibir = mysql_fetch_array($executar)) { ?> <link href="css.css" rel="stylesheet" type="text/css" /> Nome: <td><?php echo '<strong>'.$exibir ['nome'].'</strong>'; ?></td> <br/> Email: <?php echo '<strong>'.$exibir ['email'].'</strong>'; ?> <br/> <?php echo '<strong>'.$exibir ['data'].'</strong>'; ?> <br/> Mensagem: <?php echo '<strong>'.$exibir ['mensagem'].'</strong>'; ?> <br><br> <?php } ?> Mas não quero mais oportuna-los, desde já agradeço a atenção de todos, e até a proxima. =^_^= Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Fevereiro 23, 2009 Eu não entendi a tua dúvida amigo.. explica de novo ai :lol: Esquenta não, tamo ai pra ajudar mesmo. <link href="css.css" rel="stylesheet" type="text/css" /> Nome: <td><strong><?php $exibir ['nome'] ?></strong></td> <br/> Email: <?php echo '<strong>'.$exibir ['email'].'</strong>'; ?> <br/> <strong><?php echo $exibir ['data']; ?></strong> <br/> Mensagem: <strong><?php echo $exibir ['mensagem']; ?></strong> <br><br>hehe, oq eu disse sobre "não imprimir HTML desncessariamente com o php", era sério ^_^ Oque você quer aplicar agora? Veja que é HTML simples e puro.. basta fazer oque você quiser, como se não houvesse o php ai no meio... Compartilhar este post Link para o post Compartilhar em outros sites
ORisonho 0 Denunciar post Postado Fevereiro 24, 2009 A questão é que eu tentei fazer da seguinte maneira: <link href="./css/main.css" rel="stylesheet" type="text/css" /> <?php echo '<tr><td class="texto">'.$exibir ['email'].'</td></tr>'; ?> E não deu certo, deu ERRO, por isso que eu não soube exatamente como colocar a função da CLASSE do CSS para funcionar no CÓDIGO, talvez tenha sido algo que eu fiz ERRADO, por isso estou mostrando como eu fiz, se puder, corrija o código da maneira que tem que estar correto, assim saberei melhor. Compartilhar este post Link para o post Compartilhar em outros sites
Skyo 1 Denunciar post Postado Fevereiro 24, 2009 <link href="./css/main.css" rel="stylesheet" type="text/css" /> <?php $email = $exibir['email']; echo("<tr><td class='texto'>$email<td><tr>"); ?> ? é isso? O bonde já andou mto da ultima vez que postei hehe. Obs: você não teria que fechar as tags? </td></tr> após o $email acima: <link href="./css/main.css" rel="stylesheet" type="text/css" /> <?php $email = $exibir['email']; echo("<tr><td class='texto'>$email</td></tr>"); ?> Compartilhar este post Link para o post Compartilhar em outros sites
ORisonho 0 Denunciar post Postado Fevereiro 24, 2009 <link href="./css/main.css" rel="stylesheet" type="text/css" /> <?php $email = $exibir['email']; echo("<tr><td class='texto'>$email<td><tr>"); ?> ? é isso? O bonde já andou mto da ultima vez que postei hehe. Obs: você não teria que fechar as tags? </td></tr> após o $email acima: <link href="./css/main.css" rel="stylesheet" type="text/css" /> <?php $email = $exibir['email']; echo("<tr><td class='texto'>$email</td></tr>"); ?> OK!............Mas se fosse para corrigir o meu CODIGO..como seria? <link href="./css/main.css" rel="stylesheet" type="text/css" /> <?php echo '<tr><td class="texto">'.$exibir ['email'].'</td></tr>'; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Skyo 1 Denunciar post Postado Fevereiro 24, 2009 Qual o erro com ele? O que ele te retorna? O que você espera? (tente ser mais detalhista) Testou o que eu postei ali? Compartilhar este post Link para o post Compartilhar em outros sites