| Maior acervo de vídeo aulas da web

Não consegue visualizar a vídeo aula?

Desenvolvendo um sistema de comentários

Olá Pessoal. Rafael Silva na área com mais uma super vídeo aula de PHP. A pedidos, trago a vídeo aula onde aprenderemos a desenvolver um sistema de comentários do zero.

Nas aulas passadas, falamos de phpmyadmin, banco de dados e tabelas, então recomendo que você assista as minhas últimas vídeo aulas para entender melhor esta.

Espero que gostem!

Você gostou dessa Vídeo Aula, então compartilhe com seus amigos

Artigos Relacionados

Comentários

  • João Vitor Sousa

    Meus parabéns otima video aula. usei muita coisa desta video aula pra começar a desenvolver meu 1º sistema dinamico.

  • Eduardo

    caraaa que caracter(acho q e assim q escreve)q esta entre select e from
    nao consigo fazer ele de geito nenhumm
    T++ vlw

    • http://www.videoaulasbrasil.com.br David CHC

      @Eduardo, o caracter é um asteristico. O asteristico é significa tudo ou todo, então como vc faz algo desse tipo:

      SELECT * FROM comentario

      Isso significa q: Selecione TODOS OS CAMPOS da Tabela comentario.

  • Carlos Casel

    Gostei muito da vídeo aula. Muito fácil o aprendizado. MAs estava a horas procurando um tutorial com envi tb de foto para o banco de dados e como mostrar essa foto.

  • Rodnei

    Opa, cara qual é este editor que você utiliza na composição dos códigos ?
    Disse que é free mais não ouvi você citar o nome. vlw ótima aula.

  • Pedro Antonio

    Fala MESTRES do VAB!
    To com uma dúvida, tem como mostrar a hora do envio do comentário?

    Vlw!

  • Pedro Antonio

    *Aah! agora q eu vi aq, tem como mostrar tipo nos comentarios (↓) do VAB?
    DD.MM.AA às HH:MM

    Vlw!

    • http://www.videoaulasbrasil.com.br David CHC

      @Pedro Antonio, para isso vc terá trocar no campo da tabela data, em vez de date para DATETIME, e na hora de inserir vc pode fazer assim:

      $data = date("Y-m-d H:i:s");

      Para poder formatar vc pode usar uma função q criei para isso :


      function data_time($data_time){
      $data = substr($data_time, 0, 10);
      $data = implode(‘-’, array_reverse(explode(‘-’, $data)));
      $time = substr($data_time, strlen($data)+1, 5);
      $tempo = array(‘data’ => $data,
      ‘time’ => $time);
      return $tempo;
      }

      E para usar essa função vc faz assim:


      $data = data_time($exibir['data']);
      echo ‘Enviado em :’.$data['data'].’ às ‘.$data['time'];

  • Hurry

    como seria para moderar esses comentarios tipo avaliar a mensagem antes de postala pra não postarem besteira nos posts ?
    Otima aula gostei porque foi bem simples fui.

    • http://www.videoaulasbrasil.com.br David CHC

      @Hurry, pode inserir na tabela dos comentários um campo com o nome de permissao, q recebera o valor 0 ou 1. Sendo q 0 não está liberado, e 1 está liberado. Quando cadastrar o comentários, vc cadastra como 0, e no seu painel administativo vc troca para 1 ou deleta a mensagem

  • webson sousa

    otima video aula, vc ensina muito bem garoto, obrigado e continue nos ensinando….sucesso

  • Pedro Antonio

    tem como cirar um botao ao final de cada comentario escrito “Apagar”, q qdo eu clicar apaga so aquele comentario?

    Vlw!

  • Pedro Antonio

    Eu achei na net algumas coisas falando sobre unlink(), so q nao sei usar.
    Flw

    • http://www.videoaulasbrasil.com.br David CHC

      @Pedro Antonio, unlink ele vai deletar arquivo, para apagar registro você deverar usar o DELETE, vamos dizer que vc vai apagar um determinado item:

      //resgato o id do item
      $id = $_GET['id'];

      //faço o sql para deletar esse registro, filtrando pelo id
      $sql = "DELETE FROM comentario WHERE id = '$id'";

      //executa a sql
      $qr = mysql_query($sql);

  • Pedro Antonio

    vlw, mais como eu chamo a função?

  • Pedro Antonio

    haha, ja consegui
    vlw!

  • Pedro Antonio

    Desculpe o tanto de pergunta, mais é pq to precisando.
    Tem como mostrar o IP da pessoa q mandou o comentário
    ?

    Vlw!

  • Pedro Antonio

    Pod dexa ja consegui, com essas video-aulas to entendendo mto mais de php!

    Mto obrigado!

  • http://ola' brunin

    qria saber como euf aso pra colokar a foto da pesoa . sabe ? igual a esse comentarios ake vlw

  • Érika

    Nessa validação para não deixar os campos em branco ode ser feito em Ajax com Spry Validation?

    E esses comentários tem como serem inseridos dentro de um scroll, já que meu site tem uma área limitada para isso?

    Parabéns pela vídeo aula!!

    • http://www.videoaulasbrasil.com.br David CHC

      @Érika, pode usar sim o Spry validation. E pode colocar dentro de um scroll, basta definir no css uma altura a div q irá conter os comentários e declarar o overflow:auto; , q irá colocar a barra de rolagem quando passa a altura q vc definiu .

  • Érika

    David, muito obrigada…vou fazer isso e qualquer dúvida te pergunto.
    Obrigada e Parabéns pelas super vídeo-aulas.

  • http://mixmu.ueuo.com/index.php brunin

    Ola Devid .

    Como eu faso pra colokar pra aparecer a foto . do postante?

    estilo o daki obrigado

    • http://www.videoaulasbrasil.com.br David CHC

      brunin, a foto é junto como o gravatar, q é um site, onde cadastra seu email e coloca uma foto, e quando vc coloca o seu email em algum site feito com wordpress, ele aparece a imagem. Vc pode tentar integrar isso ao seu site, ou faz com a pessoa envie uma foto para seu site, existe video aulas sobre envio de imagem, como redimensionamente, claro q terá q cadastrar o nome da imagem no banco de dados, mas não é tão complicado fazer, só dá uma pesquisada rapida q vc encontra bastante coisa.

      Update:

      Acabei de fazer uma função rapida pra vc mostrar o icone no seu site. Pegue essa função do link abaixo, salve em um arquivo chamado gravatar.php

      http://pastebin.com/f8bf486e

      Agora na hora de exibir o conteudo, vc vai chamar essa função, e passar o email pra a função, exemplo:


      //inclui a função
      require_once(“gravatar.php”);
      //aqui está o email, q terá q vir do banco de dados
      $email = “email@visitante.com.br”;

      //aqui chama a função passando o email.
      gravatar($email);

      Agora vc pode ter o mesmo sistema do gravatar q o wordpress usa, de maneira simples e facil.

  • http://danielfarias.net Daniel Farias

    Ótima aula. Abriu os horizontes. Dá pra fazer muita coisa usando o mesmo conceito. Parabéns!

  • tiago

    vc poderia mandar os codigos pra agente copiar e colar num arquivo nosso? se fosse possivel pra agente n ter q digitar tudo novamente .. obrigado!!

  • Peixoto

    muito bom, tem como colocar os scripts? Por favor.

    • http://www.videoaulasbrasil.com.br David CHC

      @Peixoto não podemos, pq infelizmente não temos mais contato com autor da video aula;

  • Mychel Turatti

    Não consegui assistir esta video aula.
    As outras com certeza show de bola. Aprendi muito acompanhando o site.

    Valeu.

    • http://www.videoaulasbrasil.com.br David CHC

      @Mychel, tente limpar o cache do seu navegador. Se vc estiver usando Internet Explorer basta vc apertar CTRL + F5, caso esteja usando o No Firefox, aperte CTRL + SHIFT + DEL, e deixe marcado apenas cache, e clique Limpar Agora Veja se isso resolve.

  • http://nãotenho Lucas Pedroni

    uma dica para a página de comentários ser melhor tipo quando da erro que tem que preencher o campo nome, email e mensagem coloque:

    if($nome == null){
    echo “alert(‘Preencha o Campo Nome!’);”;
    exit();
    }

    if($email == null){
    echo “alert(‘Preencha o Campo E-mail!’);”;
    exit();
    }

    if($mensagem == null){
    echo “alert(‘Digite sua Mensagem!’);”;
    exit();
    }

    com isso não aparecera um texto na tela mais sim aparecera um aviso..
    e no comentário enviado com sucesso, coloque:

    if($inserir > 0){
    echo “alert(‘Comentario Enviado com sucesso!’);”;

    }else{
    echo “alert(‘Seu comentário não foi enviado, tente novamente!’);”;
    }

    dara um aviso na tela é muito melhor, mais faça como vcs preferirem..

  • MYCHEL TURATTI

    Infelizmente isso acontece com os 3 navegadores q tento acessar essa video aula, Firefox, Chrome e IE, simplesmente aparece o botão de play, mais não inicia o vídeo, somente nesse caso, as outras aulas tudo ok..

  • Marcio Vinicius

    Será que alguem poderia me ajudar? O problema ocorreu no momento em que ele iria começa a criar o echo “Comentário enviado com sucesso…” Momento do video, 3:51seg. O que houve foi o seguinte: Antes de tudo, o código das páginas comentarios.php e enviar_comentarios.php:

    comentarios.php
    http://pastebin.com/VyyBjqqw

    enviar_comentarios.php:
    http://pastebin.com/ezw4uQ6b

    As postagens não estavam indo para a página, como deveria. E no banco de Dados elas estavam indo.
    Entrei então direto na pagina enviar e dizia ter erros nas linhas

    Notice: Undefined index: nome in C:\Arquivos de programas\EasyPHP 2.0b1\www\teste_comentarios\enviar_comentarios.php on line 9, 10, 11

    Obrigado a todos.

    • http://www.videoaulasbrasil.com.br David CHC

      @Marcio Vinicius, esse erro está dizendo q a variavel nome não existe. Pq ela só vai existe quando vc clicar no formulário e enviar os valores, ai ela começa a existir:

      http://pastebin.com/WuvaPLZg

  • Marcio Vinicius

    David, muito obrigado (mais e mais uma vez) funcionou certinho. Algo irei tentar colocar um Alert para as mensagens para não ficar indo para outra página, apenas continuar na mesma e preenchar novamente o formulário. Um script como aquele da sua video-aula sobre o formulário em PHP funciona certo? Abraços

    • http://www.videoaulasbrasil.com.br David CHC

      @Marcio Vinicius funciona sim.

  • http://www.dragonballkai.com.br Dennys

    Bom, eu gostaria que você me ajudasse mesmo! meu msn é dennys_lp4e@hotmail.com, resumindo…
    http://www.dragonballkai.com.br/indexnews.php
    percebeu q cada noticia tem la o link pra deixar comentario? pois é, tá tudo errado, quero q cada link leve ao seu próprio comentario =] to querando cabeça faz semanas, eu tinha tudo certo, sem querer deletei tudo, agora n consigo arrumar mais
    obrigado desde já, aguardo contato… =]

    • http://www.videoaulasbrasil.com.br David CHC

      @Dennys, basta vc cadastrar id da noticia da tabela de comentarios, assim vc saberá de quem pertence cada noticia


      TABELA noticias
      id
      titulo
      noticia


      TABELA comentarios
      id
      noticias_id
      nome
      email
      comentario

      O campo noticias_id será responsável para saber de quem pertence o comentário. Na hora de exibir basta filtra pelo id da noticia


      $id_noticia = $_GET['id_noticia'];
      $sql = “SELECT * FROM comentarios WHERE noticias_id = ‘$id_noticia’”;

  • Marcio Vinicius

    Galera, uma pergunta. Eu gostaria de fazer com que a pessoa que fosse POSTAR o comentario na pagina, tivesse que digitar o e-mail normalmente, mas esse e-mail nao fosse exibido, porem eu poderia visualizar no banco. Tem como fazer isso?

    • http://www.videoaulasbrasil.com.br David CHC

      @Marcio Vinicius, basta vc não mostrar o email na hora de exibir o comentário.

  • Marcio Vinicius

    rsrs, valeu David, eu tinha pensado nisso, mas queria saber se havia outra forma. Enfim, valeu!!!

  • Marcio Vinicius

    Eae galera, olha eu aqui com mais uma pergunta ‘chata’, rsrs’ Ajuda ai David? hehe, brincadeiras a parte. O que ocorre é o seguinte:

    Meu formulário de contato tem os campos que irei citar abaixo:
    - Nome: *Obrigatorio

    - E-mail: *Obrigatorio (Esse nao é exibido na pag, mas vai para o banco normal

    - Site/Blog: “Não é obrigatorio” ps; aqui que ta o problema.

    - Mensagem: *Obrigatorio
    (Sim, eu tirei o campo assunto, nao achei necessario nesse caso.)
    E como eu havia dito, o problema ta no Site/Blog, pois diferente do e-mail, que a pessoa é obrigada a digitar mas ele nao aparece, o Site/Blog não é obrigatorio, ai quando a pessoa resolver deixar em branco ele nao fosse imprimido na tela? Deu pra entender? Se a pessoa digitou tudo, otimo. O e-mail nao aparece, isso esta descrito no site. Mas se ela nao digitar no form o Site/Blog, ela nao aparece tbm. ^^ Desculpe pela pergunta um pouco grande. abraçoos.

    Nome: xxx
    E-mail: ‘bancodedados’
    Site/Blog: xxx:
    Mensagem: xxx

    – Se ela nao digitou o site
    Nome: xxx
    E-mail: ‘bancodedados’
    Mensagem: xxx

    agora ficou melhor. ^^

    • http://www.videoaulasbrasil.com.br David CHC

      @Marcio Vinicius, basta verifica na hora de imprimir se está vazio ou não usando empty


      while($linha = mysql_fetch_assoc($query)){
      echo “Nome: “.$linha["nome"];
      if(!empty($linha['site'])){
      echo “Site/Blog: “.$linha["site"];
      }
      echo “Mensagem: “.$linha["mensagem"];
      }

      Qualquer duvida é só postar

  • Marcio Vinicius

    Caracas, perfeito! Funfo certinho! Valeu David, mais,mais, mais uma vez. E obrigado pela pacieeeeencia! Abraços!!

  • Marcio Vinicius

    David, to com um problema assim… Não é nada relacionado a VideoAula, enfim.. rs’

    Eu to com um sistema que o usuario tem que se cadastrar para fazer determinada postagem no site, até ai tudo tudo, porém no momento que ele quiser excluir essa postagem é para parecer a opção de exclussão apenas para o usuario logado, referente a sua postagem, porem todo e qualquer usuario pode apagar a postagem de qualquer um, veja só como tá:

    Imagem do Site:
    http://img341.imageshack.us/img341/6526/errorlog.jpg

    Estou logado com o Marcio mas posso remover o Post da Grazielle, e vice-versa.
    E aqui tá o código da função:
    http://pastebin.com/JND3LYPM

    Sabe o que pode ser feito?? Abraços man!!

    • http://www.videoaulasbrasil.com.br David CHC

      @Marcio Vinicius, vc tem duas opções: No caso, ou vc lista apenas os depoimentos de 1 determinado usuario, e assim oferecer a opção de excluir.


      $cd_usuario = $_SESSION['cd_usuario'];
      $verificasql = “SELECT * FROM depoimento WHERE cd_usuario = ‘$cd_usuario’”;
      $executasql = mysql_query($verificasql, $conecDB);

      OU na hora de Excluir, vc faz essa verificação


      $cd_usuario = $_SESSION['cd_usuario'];
      $cd_depoimento = $_GET['cd_depoimento'];
      $verificasql = “DELETE FROM depoimento WHERE cd_depoimento =’$cd_depoimento’ AND ”cd_usuario = ‘$cd_usuario’”;
      $executasql = mysql_query($verificasql, $conecDB);

      Nesse caso fiz a condição q pode deletar apenas o usuario q fez o depoimento. Vc pode verificar antes, e depois apagar. Ai é só escolher.

  • Marcio Vinicius

    Eae David, como já disse, eu consegui! rs’ Obrigado cara, obrigado pela atenção! Mesmo! Assim que esse Site estiver no Ar eu mando pra você dar uma olhada e ver se aprova! rs’

    Forte abraço!!

    • http://www.videoaulasbrasil.com.br David CHC

      @Marcio Vinicius, me passa o link q vou quer ver mesmo. abrs

  • Guilherme

    Como faço para estilizar a amostragem de resultados? como posso usar CSS com php?

    • http://www.videoaulasbrasil.com.br David CHC

      @Guilherme, vc pode sim estiliza com CSS, sem problema. Vc pode colocar os comentarios em uma lista não ordenada, ou criar div pra conter os comentarios, e depois estilizando com css normalmente:

      Colocando dentro de uma div:
      http://pastebin.com/kL3QmQ90

      Colcando numa lista não ordenada:

      http://pastebin.com/QpJdmCGn

      Agora só estilizar com CSS, sem problemas

  • Guilherme

    e como devo escrever o css?

    assim:

    http://pastebin.com/SarpLnrV

    como faço para colocar eles dentro de uma tabela e editar?

    • http://www.videoaulasbrasil.com.br David CHC

      @Guilherme, isso mesmo. O PHP é client-side, isso significa q ele roda no servidor,e o q ele retorna é o resultado, no caso HTML. Então a manipulação do CSS, será como vc tivesse colocado o conteudo HTML direto na página. Então basta decidir como irá mostrar esse conteudo, e estilizar.

      http://pastebin.com/nqcd2DBC

  • Guilherme

    Estou conseguindo
    Obrigado
    =)

  • Guilherme

    Sugiro a criação de uma vídeo aula de como trabalhar com css no php, acho que tem muita gente que tem a mesma duvida que eu, essa vídeo aula me ajudaria muito.
    Até mais

  • http://www.setordigital.com.br Jonathan

    acho que referencialmente o nome de Desenvolvendo um sistema de comentários leva a crer que é um sistema de comentários para um blog em si. E não um MURAL de recados. Alterem o titulo do video. No mais sistema simples e bacana.

  • josé Roberto

    Olá, ja fiz o mural deu certinho só não postei no site ainda porque gostaria de saber como faz para quando tiver um total de comentários mandar para outra pagina para não ficar tudo só numa pagina obrigado pela aula.

    • http://www.videoaulasbrasil.com.br David CHC

      José, vc pode fazer uma paginação de resultado, aqui tem uma video aula minha sobre o assunto:

      Paginação de Resultados com PHP

  • josé Roberto

    Olá, DAVID Meu tive uma bela dor de cabeça para deixar o script da paginação funcionado, pois no meu caso a paginação vai ser de um mural de recados, ai tive que acrescentar os campos nome, email, mensagem mais blz deu certo, o unico problema que eu quero mostrar pela ultima postagem no mural ja mudei de “ASC ” para “DESC” e mesmo assim ele mostra por ordem alfabética pode me ajudar agradeço desde já.

    • http://www.videoaulasbrasil.com.br David CHC

      @josé , vc vai colocar em ORDER BY em DESC, mas pelo ID

  • josé Roberto

    Descupe minha ignorância mas ID ???

    • http://www.videoaulasbrasil.com.br David CHC

      @josé, na tabela criada para o sistema de comentarios, ele colocar um campo com o nome de id que é uma chave primeira, q quer dizer q tem q ser unica, e auto-incremento, no qual a cada novo comentario é colocado um valor. Então vc vai ordernar essa tabela pelo como id, já que o comentario mais recentes terá um id com numero maior, então vai definir o ORDER BY id DESC

  • http://quadrangularlaranjeiras.com.br/mural.php josé Roberto

    DAVID, deu tudo certinho que Deus te abênçõe muito, obrigado mesmo!

  • Guilherme

    Como faço para a data ficar assim:
    (d-m-y) em vez de (y-m-d)?

    • http://www.videoaulasbrasil.com.br David CHC

      Vc, quer mostrar para o usuario , basta usar o strtotime;

      echo date(‘d-m-Y’, strtotime($linha['data_comentario']));

      $linha['data_comentario'] => será a data da sua tabela dos comentários

  • Guilherme

    Não consegui eu estou inserindo registro com um hidenfield com o value de
    echo date(‘y-m-d’) ae no phpmyadmin fica assim:
    ex: 2010-12-15
    e exibe assim 2010-12-15
    uso o codigo para exibir:
    echo $row_Recordset1['data'];

    qual é o geito mais facil para colocar a data certo? é na hora de exibir ou na hora de inserir que devo modificar o codigo?
    ate mais brigado

    • http://www.videoaulasbrasil.com.br David CHC

      @Guilherme, existem algumas maneira de fazer essa inserção. Vc pode escolha no campo onde vc vai quer a data, vamos dizer com nome datahora, e colocar o tipo DATETIME. E no SQL vc colocar o NOW() para inserir automaticamente:

      $strSQL = “INSERT INTO comentarios (nome, email, comentario, datahora) VALUES (‘$nome’, ‘$email’, ‘$comentario’, NOW())”;
      E na hora de recuperar vc pode usar o strotime, exemplo

      echo date(‘d-m-Y’, strotime($row_Recordset1['data'])). ‘ às ‘. date(‘H:i:s’, strotime($row_Recordset1['data']));

  • Guilherme

    Consegui cara vlw
    eu inserir com um hidenfild com o comando echo date(‘d-m-Y’);
    e exibi normal
    obrigado pela atenção

  • Paulo

    ótima video aula, mas estou com uam dúvida que não encontro resposta de jeito nenhum, como faço pra mina página atualizar assim que clico no botão “enviar” sem a necessidade de abrir outra página de confirmação?

    • http://davidchc.wordpress.com David CHC

      Vc pode incluir o arquivo q está separado onde está o formulário do comentario. Exemplo.

      Vamos dizer q seu arquivo se chama enviar.php, e o arquivo recado.php está o formulário , e que este esteja indicando na action do formulario o arquivo enviar.php. Basta na action indicar o arquivo recado.php, pra enviar para propria pagina, e fazer uma condição:

      //verifica se tem metodo post
      if($_POST){
        //inclui o arquivo enviar.php
        include('enviar.php');
      }
      
  • Augusto

    Preciso muito da sua ajuda David CHC no meu caso aparece : 
    Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in D:Program FilesEasyPHP-5.3.8.0wwwCurso PHPrecados.php on line 11 , quando eu coloco$exibir = mysql_fetch_array($executar); , você poderia me ajudar cara !? 

    • http://davidchc.wordpress.com David CHC

      Provavelmente seja o erro na construção do SQL. Pra saber desse erro utilize o mysql_error na hora de executar esse SQL

      $executar = mysql_query($sql) or die(mysql_error());


Hospedado por Hostnet - Hospedagem de sites

VAB - Todos os direitos reservados - 2008 / 2012

Developed by: MX Web Studio

Mais em PHP (198 of 199 articles)