Ir para conteúdo

POWERED BY:

Arquivado

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

ORisonho

Codigo PHP para sistema de COMENTÁRIOS

Recommended Posts

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

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

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

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

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

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

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

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

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

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 normal
mescle 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

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

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

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

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

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

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

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

<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

<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

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

×

Informação importante

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