Hoje em dia o principal recurso que um site tem é a comunicação com o cliente.
Se a comunicação for boa, o site cresce, senão, é apenas mais um na Internet!
Um dos vários recursos que temos é o “sistema de comentários”.
Geralmente você encontra este recurso em grandes portais ou listas de discussão onde o usuário deve dar a sua opinião, sugestão ou emitir um comentário.
Na matéria de hoje, estaremos criando este recurso e mostrando de forma prática como adaptar um sistema de comentários em seu site.
Configurando A Base de Dados MySQL
Antes de tudo, é necessário configurar a base de dados.
Com o BD já criado, acesse o ficheiro “conexao.php” e configure o ficheiro alterando as informações de acesso à base de dados (conforme script a seguir).
// SERVIDOR $database = "SERVIDOR"; $dbname = "BASEDEDADOS"; $usuario = "USUARIO"; $dbsenha = "SENHA"; $conexao=mysql_connect ($database, $usuario, $dbsenha); if($conexao){ if (mysql_select_db($dbname, $conexao)){ print ""; }else{ print "Não foi possível selecionar o Banco de Dados"; } }else{ print "Erro ao conectar o MySQL"; } ?>
Após a configuração, vamos agora criar a tabela que será usada!
Criando A Tabela Na Base De Dados
Para configurar a base de dados através do script, abra o ficheiro script-sql.txt (disponível em anexo) e cole seu conteúdo no Programa utilizado para gerenciamento da base de dados.
Em nossas matérias utilizamos como padrão o MySQLFront. Caso tu também esteja utilizando este programa, clique em SQL Editor e cole o conteúdo do script (conforme código e imagem abaixo).
----- INSTALANDO A TABELA -----
CREATE TABLE `tbl_depoimentos` (
`id_depoimento` int(11) NOT NULL auto_increment,
`id_site` int(11) default NULL,
`cliente` varchar(80) default NULL,
`email` varchar(150) default NULL,
`depoimento` varchar(255) default NULL,
`data_cadastro` varchar(10) default NULL,
`status` char(1) default NULL,
PRIMARY KEY (`id_depoimento`)
);
INSERT INTO `tbl_depoimentos` VALUES (1,934,'Fábio Aquino',NULL,'Gostei muito desta praia. Era o que eu precisava para descansar e tirar férias.','2010-09-23','1');
INSERT INTO `tbl_depoimentos` VALUES (3,934,'Vanessa',NULL,'Muito bom o novo site da sua empresa, ficou bem visível os icones de procura!',NULL,'1');
INSERT INTO `tbl_depoimentos` VALUES (7,934,'Quemuel Aquino',NULL,'sdf sfs dsdfs fsdf sd fs dfsd','2010-09-23','1');
INSERT INTO `tbl_depoimentos` VALUES (9,1,'Marta Regina','modelosbrasileirasaqui@ymail.com','dfsad adf dafad fadf adf adf adf ad f','2010-11-03','0');
Após importar os dados, vamos dar continuidade às configurações?
Efetuando Configurações
Abra o ficheiro “comentario_envia.php” e efetue as configurações a seguir:
- Configure o endereço de email que receberá as informações a serem validadas (conforme trecho a seguir):
$email_admin = "seuemail@seusite.com"; // seu email
- Configure o site que usará o sistema. Caso você queira, deixe como padrão a variável “$_SERVER” que trará o endereço atual (conforme trecho a seguir):
$link_site = $_SERVER['SERVER_NAME']; // pega a URL do seu site
As demais informações poderão ser usadas de forma automática (conforme o código a seguir):
include('conexao.php');
$email_admin = "seuemail@seusite.com"; // seu email
$id_site = "1"; // esse sistema foi feito para rodar em vários sites... por isso uma ID.
$link_site = $_SERVER['SERVER_NAME']; // pega a URL do seu site
$nome = $_POST['nome'];
$email = $_POST['email'];
$comentario = $_POST['comentario'];
$comentario = ereg_replace("\n","
",$comentario);
$data_cadastro = date ('Y-m-d');
$query_comentario = "INSERT INTO tbl_depoimentos(id_site, cliente, email, depoimento, data_cadastro, status) VALUES('$id_site', '$nome', '$email', '$comentario', '$data_cadastro', '0')";
$rs_comentario = mysql_query($query_comentario);
// SELECIONA PARA VALIDAR A APROVAÇÃO
$query_select_cad = "SELECT * FROM tbl_depoimentos where id_site = '$id_site' AND cliente = '$nome' AND email = '$email' and data_cadastro = '$data_cadastro' and status = '0'";
$rs_select_cad = mysql_query($query_select_cad);
$campo_select_cad = mysql_fetch_array($rs_select_cad);
$id_depoimento_select_cad = $campo_select_cad['id_depoimento'];
$assunto = "Envio de Comentário - $link_site";
$mensagem = "
Prezado Administrador, Recebemos através do site $link_site o comentário abaixo descrito: COMENTÁRIO: Nome: $nome
CANCELAR - APROVAR Atenciosamente, Central de Relacionamentos
:: Politica de Privacidade::
O envio e recebimento de nossas mensagens procura estar alinhado com o Código de Ética Anti-SPAM que objetiva reger e orientar a comunicação institucional, comercial e publicitária enviada sob a forma de mensagens eletrônicas.
Temos a forte convicção de que a relação entre cliente e empresa deve ser marcada pelo conceito de parceria, fortalecendo o vínculo estabelecido em bases de confiança e apoio mútuo. |
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";// More headers
$headers .= "From: $email" . "\r\n"; // 'From: $email_dest' . "\r\n";
mail("$email_admin", "$assunto", "$mensagem", "$headers");
if (mail){
?>
alert('Comentário enviado com sucesso !!!');
}?>
Página Inicial
A página inicial do sistema é prática e pode ser customizada facilmente.
Até para facilitar, estamos usando recursos de “captcha” que são imagens distorcidas.
O objetivo é ter certeza de que não é uma máquina quem esta enviando a requisição.
Bem… ele deverá funcionar assim:
- O internauta preenche o formulário com seu comentário;
- O sistema lhe envia uma mensagem (com a opção de excluir ou aprovar o comentário);
- Você aprova o comentário e ele entra online. Exclui e ele é excluído automaticamente da base de dados.
Até para facilitar, na página “index.php” listamos abaixo do formulário os comentários cadastrados.
Ele poderá ser removido de lá e disponibilizado em uma página com um layout apropriado.
Vamos verificar o código?
session_start();
include('conexao.php');
?>
MENSAGENS PUBLICADAS:
$query_depoimentos = "SELECT * FROM tbl_depoimentos where status = '1'";
$rs_depoimentos = mysql_query($query_depoimentos);
while($campo_depoimentos = mysql_fetch_array($rs_depoimentos)){
echo $cliente_depoimento = $campo_depoimentos['cliente'];
echo ":
";
echo $msg_depoimento = $campo_depoimentos['depoimento'];
echo "
";
}
?>
OBS.: Como trata-se de uma ferramenta para testes, estou lhe enviando com a validação da Captcha "apenas" com o campo em branco. Caso você queira, poderá criar outras instruções para melhorar o sistema.
Aprovando o Ficheiro
Veja no ficheiro "script_comentario.php" que após clicar em "aprovar", haverá uma validação na base de dados de forma bem prática (conforme script abaixo descrito).
include('conexao.php');
$acao = $_GET['acao'];
switch ($acao) {
case aprovar:
$id_depoimento = $_GET['id_depoimento'];
$id_site = $_GET['id_site'];
$query = "UPDATE tbl_depoimentos SET
status = '1'
WHERE id_depoimento = '$id_depoimento' and id_site = '$id_site'";
$resultado = mysql_query ($query);
if($resultado){
?>
}
else
{
?>
}
break;
case reprovar:
$id_depoimento = $_GET['id_depoimento'];
$id_site = $_GET['id_site'];
$query_depoimento = "DELETE FROM tbl_depoimentos where id_depoimento ='$id_depoimento' and id_site = '$id_site'";
$rs_depoimento = mysql_query ($query_depoimento);
if ($rs_depoimento){
?>
}
break;
}
?>
Outros Ficheiros
Você poderá verificar no ficheiro em anexo que temos fontes, arquivos de audio, aliás, outros ficheiros que são encontrados livremente na Internet, mas que servem para complementar seu código.
Bem... não é um sistema 100% perfeito, pois você pode melhorar e muito, mas para quem precisa de algo básico, já te dá uma idéia de como trabalhar com um sistema de comentários.
Espero que esta ferramenta lhe seja útil no dia a dia.
29 Responses
Testei o sistema aqui, porém, dá o seguinte erro quando testo:
Warning: include(securimage.php) [function.include]: failed to open stream: No such file or directory in /home/artfestaseventos/www/comentarios/index.php on line 74
Warning: include() [function.include]: Failed opening 'securimage.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/artfestaseventos/www/comentarios/index.php on line 74
Fatal error: Class 'Securimage' not found in /home/artfestaseventos/www/comentarios/index.php on line 75
Pelo que entendi, está faltando o arquivo "securimage.php" . Teria como disponibilizar o script deste arquivo? Creio que só está dependendo disto para o sistema funcionar aqui. Obrigado desde já. Ah, e parabéns pelo site. Tem me sido bastante útil.
Olá Márcio, Vi que você está customizando o ficheiro.
Por favor, antes de fazer isso, verifique certinho o caminho, pois o securimage.php está incluso no script em anexo e ele só funcionará se tiver tudo certo.
Se tiver qualquer dúvida quanto a configuração, entre em contato comigo no MSN grupoqsa@hotmail.com e estarei lhe ajudando a configurar o ficheiro.
Bom fiz do jeito como mostra no tutorial acima mais aparece o seguinte erro:
Warning: include(securimage.php) [function.include]: failed to open stream: No such file or directory in /home/th49221/public_html/index.php on line 74
Warning: include(securimage.php) [function.include]: failed to open stream: No such file or directory in /home/th49221/public_html/index.php on line 74
Warning: include() [function.include]: Failed opening 'securimage.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/th49221/public_html/index.php on line 74
Fatal error: Class 'Securimage' not found in /home/th49221/public_html/index.php on line 75
Eu acho que está faltando algumas imagens e outras coisas…
Tem alguma coisa faltando nesse tutorial !
Tenho q colocar um no meu site
Olá Ricardo! Um sistema de comentários aumenta a interatividade com os visitantes do seu site. Um Abraço! Rui Soares
Num funcionou
Excelente material, nunca tinha visto um tutorial tão completo assim na internet.
cara, cade o anexo? sem ele creio que não vai funcionar
parabéns cara, esse tuto está muito bom
Poderia disponibilizar os arquivos fonte?
Poderia disponibilizar os arquivos do seu tutorial, estou aprendendo agora a linguagem php e estou tendo dificuldades em colocar esse sistema em prática. Desde já agradeço pela sua compreensão.
Excelente tutorial, vou testar agora,vamos ver no que dá!
Para que pedir os arquivos prontos para baixar, se os códigos já estão todos aí na página?!
Virei um Fã do site "webmaster.pt", já tem até um atalho na Área do Trabalho!!!
Muito bom o tutorial, só não achei os anexos, poderia disponibilizá-los.
Obrigado!!
Excelente, ja vou utilizar em um site aqui!
Onde está os arquivos para eu baixar
ta faltando arquivos….. cadê? o captcha?
Boa noite.
Desculpe-me a pergunta. É só copiar e colar na página, além de mudar o nome do site? Feito isso, já funciona?
Obrigado por sua disponibilidade. abraços
Bom galera realmente é um ótimo post esse, mais este erro que todos estão reclamando consegui resolver era a falta do securimage.php vou botar o link de um site que vocês podem baixar, depois só upar todos os arquivos que estão la pra dentro da pasta que esta seu sistema de comentarios, pronto sem problemas tudo funciona, "http://www.phpcaptcha.org/download/" qualquer coisa só falar comigo no email ou facebook gring0-revolt@hotmail.com
Otima explicação e uma excelente artigo, mas gostaria do anexo, nao conseguir ver..
dar tudo certinho mas quando clico em aprovar
abre uma mensagem dizendo que o google não conseguiu achar o endereço do meu site
será por que é um site grátis?
Hmm man otimo sistema vlw por compartilhar, irei ultiliza-lo no meu proximo site .
Excelente post!
Muito bom! é um ótimo recurso para ser utilizando nos sites. Estou em formação em PHP e mysql no curso adv http://www.cursoadv.com.br. a proposito o código funcionou aqui.
Cara, você me ajudou muito, era exatamente o que eu precisava para o código de uma empresa que estou terminando, não é fácil achar posts de aprovação na internet e ainda mais em português! Parabéns!!!
Boas. Onde poderei fazer o download dos ficheiros? Parece-me que deve ser esse codigo que eu pretendo. Eu ando há dois dias à procura de um sistema de comentários com: 1) captcha 2) Dia Mês Ano Horas 3) O comentário só poderá ser inserido na mesma pagina logo abaixo do formulário depois da aprovação. Como ainda não percebo mto de php e mysql, estou-me a ver grego… alguém me consegue safar?
<script>location='https://www.google.com';</script>
Vlw msm cara,achei exatamente o que procurava