| Maior acervo de vídeo aulas da web

Não consegue visualizar a vídeo aula?

Criando Chat com PHP e jQuery – parte 3

Salve amigos VAB, nessa última parte da vídeo aula criaremos a interação utilizando jQuery, desde inserir as mensagens até atualizar as mensagens utilizando setInterval. Espero que gostem, e boa Aula.

Projeto Completo: http://www.4shared.com/file/20F5_NR5/chat_2.html

Obs.: Na video-aula coloquei de maneira errônea o $.trim no jQuery, mas a opção do projeto completo consertei esse erro. Se você já tinha feito o download, faça novamente.

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

Artigos Relacionados

Comentários

  • Guilherme Blanco

    Simplesmente a melhor!! David CHC vc é o melhor colunista Php do VAB, parabéns!

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

      Obrigado @Guilherme. Mas tem muita gente boa aqui no VAB com aulas de PHP e outros linguagens e programas.

  • bastiani

    Cara realmente vc sabe muito de PHP.

    Um grande abraço.

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

      Vlw @bastiani

  • http://www.manuallinuxbrasil.com.br Bruce

    David, parabéns. Mais uma excelente video aula. Gosto da forma como programa e tem ensinado a programar.

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

      Obrigado @Bruce

  • Adeilton Ferreira

    David continue com essas aulas de OO… até que você poderia fazer um sisteminha pra agente em MVC não ? vlw cara abraço =D

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

      @Adeilton, terá uma video aula abordando esse assunto (MVC), mas não será feita por mim. Lembrando, q vc pode trabalhar com MVC independente do paradigma de programação, pode ser em OOP, Estrutural, procedural, etc.

  • http://www.clgames.com.br WIlliamF

    Opa falaew David vei tentei fzer o tutorial certinho fiz tudo direitinho + acontece ele insere no banco de dados jquery funcionando atualiza e pa
    + ele da 1 erro de FOREACH na hora de mostrar
    Warning: Invalid argument supplied for foreach() in C:\AppServ\www\webChat\chat.php on line 14

    tentei dar 1 var_dump na query e ela me retorna NULL ou seja por alguma razão a função listar n esta retornando nenhum valor. segue abaixo a função.

    public function listar(){
    $syntax = ” SELECT nickname AS Nick, mensagem AS Msg, data AS Data FROM wChatMensagens ORDER BY id DESC “;
    $sql = $this->Sql->prepare($syntax);
    $sql->execute();
    return $r = $sql->fetchAll(PDO::FETCH_OBJ);;
    }

    Obs estou usando minha coneão PDO, eu ja tinha uma aki pronta q eu estava deenvolvendo sistema de notícias dai dei uma parada. + dentro da classe hatWebchat na __construct eu chamo a classe assim $this->Sql = new Sql();

    +creio q n seja este o problema pois ele inseri os resultados no banco e os atualiza só n os exíe no c

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

      @WIlliamF, o erro está dizendo q não tá utilizando um argumento valido, traduzindo, não está enviando um array para o foreach:

      Faça assim:

      public function listar(){
      $syntax = ” SELECT id, nickname AS Nick, mensagem AS Msg, data AS Data FROM wChatMensagens ORDER BY id DESC “;
      $sql = $this->Sql->prepare($syntax);
      $sql->execute();
      return $sql->fetchAll(PDO::FETCH_OBJ);;
      }

      Ou assim:

      public function listar(){
      $syntax = ” SELECT id, nickname AS Nick, mensagem AS Msg, data AS Data FROM wChatMensagens ORDER BY id DESC “;
      return $this->Sql->query($syntax);
      }

  • Osvaldo

    Olá David!

    Assisti a video aula e achei o máximo.

    Mas, baixei os arquivos e o sistema não funciona.

    Dá o seguinte erro:
    Fatal error: Uncaught exception ‘PDOException’ with message ‘could not find driver’ in C:\Users\e-YourSolutions.com\Desktop\codigos\chat_2\classes\BD.class.php:9 Stack trace: #0 C:\Users\e-YourSolutions.com\Desktop\codigos\chat_2\classes\BD.class.php(9): PDO->__construct(‘mysql:host=loca…’, ‘root’, ”) #1 C:\Users\e-YourSolutions.com\Desktop\codigos\chat_2\classes\Chat.class.php(33): BD::getConn() #2 C:\Users\e-YourSolutions.com\Desktop\codigos\chat_2\index.php(10): Chat->existeNome() #3 {main} thrown in C:\Users\e-YourSolutions.com\Desktop\codigos\chat_2\classes\BD.class.php on line 9

    O que pode estar acontecendo?

    Grato pela atenção,

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

      @Osvaldo, vc tem q verificar se o PDO está instalado. Veja no php.ini , se tiver assim com ponto e virgula, basta retirar

      ;extension=php_pdo_mysql.dll

      Habilitando

      extension=php_pdo_mysql.dll

      Depois reinicie o servidor

  • Anderson

    Oi David, deu esse erro: Fatal error: Class ‘PDO’ not found in /home/e63978/public_html/chat/classes/BD.class.php on line 9

    Como faço para resolver.

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

      @Anderson, vc tem q verificar se sua hospedagem tem suporte ao PDO

  • Urbano

    David, td bem? por acaso tu não teria um script, em jquery ou em js mesmo, de um relogio(cronometro) tipo o do peixo urbano, que tem um tempo e começa a contar na forma regressa?
    Valeu!!

  • Urbano

    Valeu!! vou procurar

  • http://senhoresdaweb.com/ William

    Tem como adicionar winks e emoctions estilo live messenger?

  • http://www.ltsites.com.br Leandro

    David, parabens.
    Suas video aulas são ótimas. Eu tenho uma duvida, gostaria de saber se podemos fazer tudo em OOP, por exemplo fazer um sistema de comentarios.
    vlw
    abs…

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

      @Leandro, vc pode fazer um sistema de comentário tbm em orientado a objeto, ou qualquer outro sistema q deseje fazer.

  • Rogerio

    Suas aulas de as do Matheus Mouras são simplesmente demais. A maneira como vocês estão sempre atualizados e impressionando sem dizer da didática que é espetacular, ainda bem que existem pessoas como vocês dispostas a passar tanto conhecimento com tanta boa vontade. Muito obrigado.
    PS. Quando crescer quero ser igual a vocês.

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

      vlw @Rogerio. Q bom q as aulas estão te ajudando a entender um pouco a trabalhar com PHP. abrs

  • http://gyk.net.br Marcio Sales

    Qto a dica do PDO, uso a HM e segundo eles eles não me permitem alterar linhas de comando no PHP.ini por se tratar de servidores compartilhados. Existe uma outra solução sem usar o PDO (que ate achei mais pratico e limpo)??

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

      @Marcio , vc pode trabalhar com mysql_* . Mas um conselho, se sua hospedagem não dá suporte para PDO, q já é nativo no PHP5, troque de hospedagem

  • http://www.arquitetodaweb.com Lucas Silva

    Fala david blz?, que editor de texto é esse que vc usa nas aulas de chat? abrs

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

      @Lucas , uso o eclipse

  • http://www.arquitetodaweb.com Lucas Silva

    Valeu ja to baixando hehehe
    abrs depois eu mando mais aulas aew parei kk

  • http://www.arquitetodaweb.com Lucas Silva

    Oi david, baixei o eclipse que vc falou, mais eu não to conseguindo instalar tem que fz oque? ele não veio como setup.exe não tem alguma configuração especifica abrs!

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

      @Lucas , não é instalado, vc baixa, e clica no icone do eclipse e usa. O q vc pode fazer, é criar uma pasta eclipse em arquivos de programas, jogar o conteudo q vc baixou, clicar com botão direito, e criar uma atalho no desktop.

  • http://www.arquitetodaweb.com Lucas Silva

    @David CHC Oi David baixei e cliquei no atalho como vc disse mais olha o que aparece quando eu clico
    http://migre.me/3YEHi

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

      @Lucas, baixe o PDT, q é o eclipse para PHP, para java ele vai pedir para instalar o java, entre outras coisas.

      http://www.eclipse.org/pdt/

  • http://www.arquitetodaweb.com Lucas Silva

    Valeu david brigadão aew!!

  • http://www.arquitetodaweb.com Lucas Silva

    Baixei duas vezes o programa na versão pra php e todas as duas continua dando o mesmo erro vlw pela ajuda mas parece que aqui não tem jeito não rs

  • http://www.arquitetodaweb.com Lucas Silva

    parece que tem que instalar um tal de jdk é mesmo preciso instalar isso david? tem que baixar?

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

      @Lucas , eu não me lembro, pq já tinha JDK pq tava estudando JAVA. Mas dá uma olhada no site do eclipse q deve tá falando algo sobre isso,

  • http://karisdesignerweb.com.br Kariston

    Gostei das video-aulas! Vocês estão de parabéns, todas as video aulas que eu vejo aqui no VAB ou no MXMASTERS, não tenho do que reclamar são exelentes.
    Não sei se aqui é o lugar certo para fazer pedidos, mas gostaria de pedir uma(s) video-aula(s) para criar um sistema de chat para atendimento ao cliente online essas 3 video aulas que vcs fizeram são exelentes, porém não é bem isso que eu preciso, dou uma idéia de complementar essa série de video aulas.
    Obrigado, vou torcer para ser atendido. :D

    E Novamente meus parabéns pelas video aulas!

  • http://karisdesignerweb.com.br Kariston

    @DAVID_CHC muito obrigado!

  • http://www.digitalvideorc.it Andrea

    Hello,
    i see the tutorial for criando chat with php+jquery. I make all that say in the tutorial but i see this error:
    Fatal error: Class ‘Chat’ not found in /home/mhd-01/www.digitalvideorc.it/htdocs/dvchat/index.php on line 9

    Why? I don’t know where is the problem. Help me;)
    Thank You,
    Andrea!

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

      Hello Andrea, make sure you added the file load.php in index.php. In lesson 3, has all files created in the video for download. Sorry some errors in spelling. :D

  • Andrea

    Hello,
    Where Do I add load.php in the index.php? In which line? Or Do I include the load.php with the include function? Thank you!
    Andrea!:) I’m sorry for my english!

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

      @Andrea, you include the config.php file in the file index.php. This config.php file has two files included which are: load.php, responsible for calling the class Chat. And the file define.php where are the data from the database

  • Andrea

    setNome ($nome);
    if ($chat->existeNome()) {
    $erro = ‘Nome già in uso’;
    } else {
    setcookie (‘nome’, $chat->getNome(), time()+3600*24*TEMPO_LIMITE);
    header(‘location:chat-index.php’);
    }
    }
    }

    Hello, i already include the file config.php but don’t work!
    I don’t now how i can do!
    Andrea!
    ?>

  • Andrea

    Sorry, this code include config.php

    if($_SERVER['REQUEST_METHOD'] == ‘POST’) {
    $nome = trim(filter_input (INPUT_POST, ‘nome’)) ;
    if (empty ($nome)) {
    $erro = ‘Il nome è obbligatorio’;
    } else {
    require(“config/config.php”);
    $chat = new Chat();
    $chat->setNome ($nome);

    Sorry!:)

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

      @Andrea, checks if the class is in the Chat folder classes.

      Recalling that the file name Chat.class.php

  • Andrea

    Fatal error: Uncaught exception ‘PDOException’ with message ‘SQLSTATE[HY000] [2003] Can’t connect to MySQL server on ‘ftp.digitalvideorc.it’ (111)’ in /home/mhd-01/www.digitalvideorc.it/htdocs/dvchat/classes/BD.class.php:9 Stack trace: #0 /home/mhd-01/www.digitalvideorc.it/htdocs/dvchat/classes/BD.class.php(9): PDO->__construct(‘mysql:host=ftp….’, ‘digitalv73866′, ‘digi66487′) #1 /home/mhd-01/www.digitalvideorc.it/htdocs/dvchat/classes/Chat.class.php(36): BD::getConn() #2 /home/mhd-01/www.digitalvideorc.it/htdocs/dvchat/index.php(12): chat->exsisteNome() #3 {main} thrown in /home/mhd-01/www.digitalvideorc.it/htdocs/dvchat/classes/BD.class.php on line 9

    Yes…the file is in the Chat folder classes. I think to resolve the previuos problem….but now i read this error…
    How ever?
    Thank you:)

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

      Andrea, this error is related to the data from your database. Not logged in mysql .I think the Server Host is not the address you are using. Are you using the FTP address, from what I saw.

  • Andrea

    I change the host…I do a big error:) sorry.

    Now this is the new error….

    Fatal error: Call to a member function execute() on a non-object in /home/mhd-01/www.digitalvideorc.it/htdocs/dvchat/classes/Chat.class.php on line 38

    I’m sorry and thank you!

  • Andrea

    Ok…I have past the code in the new post. You can see this code if you go in the link that you send me!
    I don’t see the error…..:(

    Thanks.
    Andrea!

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

      Andrea you replace your code for what I ordered? And still the same error, saying that the class or Chat error saying about the method execute ()

  • Andrea

    public function existeNome(){
    $strSQL = “SELECT COUNT(nome) FROM chat WHERE nome = ?”;
    $stmt = BD::getConn()->prepare($strSQL);
    $data = array($this->getNome());
    $stmt->execute($data);
    return ($stmt->fetchColumn() > 0) ? true : false;
    }

    This is the code…do you search me this?
    ;) Thanks!

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

      Andrea, It is giving error in this part of code? And what’s the error?

  • Andrea

    Fatal error: Call to a member function execute() on a non-object in /home/mhd-01/www.digitalvideorc.it/htdocs/dvchat/classes/Chat.class.php on line 38
    This is the error.
    Andrea!

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

      Andrea, put your code in the class Chat.class.php http://www.pastebin.com, and send the link to me

  • Andrea

    Hi,
    this is the link:
    http://pastebin.com/sCy8WsgM

    Thanks!

  • http://pastebin.com/4NZGyJea Andrea

    http://pastebin.com/4NZGyJea

    This is the code.
    Thanks!
    Andrea!

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

      Sorry for the delay in response was due to my work. Apparently it’s all right, show me the class BD.class.php

  • Andrea

    This is the Bd class:

    http://pastebin.com/7VcEXjNA

    Thanks:)
    Andrea!

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

      @Andrea, PHP is case sensitive. Then $conn is different from $Conn.

      Is your like this :

      self::$Conn = new PDO (DSN, USER,PASS);

      And the correct :

      self::$conn = new PDO (DSN, USER,PASS);

  • Andrea

    I changed $Conn in $conn in the bd.class.php file but i received the same error:

    Fatal error: Call to a member function execute() on a non-object in /home/mhd-01/www.digitalvideorc.it/htdocs/dvchat/classes/Chat.class.php on line 38

    Thanks!

  • Andrea

    Do I paste the both files in http://pastebin.com?

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

      Andrea, You will copy the files from the pastebin, that are in RAW Data folder, and replace

  • Bruno

    David, tem como colocar emoticons?

  • http://twitter.com/MatheusBrRl Matheus

    David, gostaria de uma ajuda para adicionar um script,
    que OnKeyPress desse submit no chat;
    Ja pesquisei em varios lugares encontrei varios mais nao consegui fazer nenhum funcionar, se puder ajudar ai :D Agradeço. 
    Continue o bom trabalho :D

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

      Não entendi, vc quer adicionar algo ao pressionar algum tecla ? Pq é pra isso q o evento onkeypress vai proporcionar

      • http://twitter.com/MatheusBrRl Matheus

        Exatamente, Ao pressionar ENTER, ele envia o formulario, isso ficaria muito mais interativo, e menos cansativo do que levar o mouse até o botao enviar!

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

          Pode tentar fazer algo assim:

          http://jsfiddle.net/davidchc/vWAMY/

          • http://twitter.com/MatheusBrRl Matheus

            Ok! 
            Essa parte eu consigo fazer, mais o que eu nao consigo fazer é o comando enviar o formulario, eu tentei de varias maneiras, colocando comandos de diferentes formas, ex:
            document.formulario1.submit() 
            this.submit()
            etc, etc… mais nenhum me da resultado!

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

            Mas pra q submeter o formulário, se isso vai ser enviado via ajax ? Vc só precisa resgatar o valor do textarea. Lembra q na video aula ação é chamada quando clica no botão, mas ele não submete o formulário q retorna falso, pra não atualizar a página.

          • http://twitter.com/MatheusBrRl Matheus

            Eita *-*
            Valeu :D demorei pra raciocinar ¬¬
            Mais consegui fazer o que eu queria :D

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

    Esse chat é simples e limitado, a ideia é mostrar o funcionamento, o ideal é refazer a modelagem, criando duas tabelas, uma para os usuários, e outro paras mensagens.

    Uma maneira de mostrar quem está online, e limitar a vida das mensagens em 1 hora, e assim excluindo, e depois usaria o group by para juntar os nomes das pessoas. e listar

  • Marcio Vinicius

    David uma pergunta simples que eu acho que nunca foi feita(pelo menos por mim), mas é importante: Quando definir se um projeto vai ser em OO ou não?

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

      Marcio, todo projeto pode ser feito em OOP ou Estrutura ou Procedural, etc. Se o seu projeto tive apenas um formulário de contato. Não vale a pena, pq vc não vai aproveitar os beneficios do OOP. Mas se o seu projeto está usando recursos do banco de dados, vc precisa fazer coisas repetidas, ai tá na hora de pensar OOP, pq um das suas bases é o reaproveitamento.

      As pessoas tem duvidas pq aprender em OOP, se tenho q escrever mais. Na verdade isso só vai acontece uma só vez, exemplo. Vc criou um conjunto de classe para trabalha com banco de dados, q faz a conexão, e realiza o CRUD. Depois de ter feito ela,vc não vai ficar criando ela toda vez, apenas vai utilizá-la no projeto. Isso vai te fazer ganhar tempo.

  • sls

    David seu chat só funciona no pc quando vou hospedar não funciona dá uns erros nessa tal BD e também na define já não sei mais oque fazer dá uma ajuda ai obrigado.

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

      Verifique se sua hospedagem tem suporte ao PDO

      • sls

        sim vou ver isso aqui David seu chat só funciona no pc quando vou hospedar não funciona dá uns erros nessa tal BD e também na define já não sei mais oque fazer dá uma ajuda ai obrigado.

        • sls

          deu certo obrigado poderia ser aplicado uma tabela temporaria pra esse chat ?

      • sls

        eu vou ver com a hospedagem se tiver hotmail me adiciona tou precisando de ajuda com isso.

      • sls

        sim possui uporte ao PDO mas acho que o problema ta na maneira que vc usou pra fazer a conexão com o banco isso que ta me confundindo e agora não sei como alterar pra que funcione tudo estava perfeito funcionando bacana mas só aqui dentro do pc

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

          Vc precisa fazer em etapas:

          1 – Criar um banco de dados da sua hospedagem, guardar as informações de criação, como nome do banco de dados, usuário, senha
          2 – Cria a tabela no banco de dados
          3 – Ir no arquivo define.php, e substituir os valores dos defines :

          define(‘HOST’, ‘endereço do servidor’);
          define(‘USER’, ‘nome do usuario do banco de dados’);
          define(‘PASS’, ‘senha do banco de dados’);
          define(‘BD’, ‘nome do banco de dados’);

          Lembrando que esse chat tem fins didáticos.

          • sls

            já fiz tudo isso mas o problema é que quando vai entrar no chat ta dando esse erro de PDO

          • sls

            Fatal error: Uncaught exception ‘PDOException’ with message ‘invalid data source name’ in

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

    Vc tem a possibilidade de trabalhar com qualquer tipo de calculo, dá uma olhada nesse link abaixo, vc tem as referencias o q vc pode trabalhar no MySQL

    http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

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

    Eu fiz o testes, não estava aceitando, como fiz na video aula. Lembrando novamente, ele é para estudo.

  • sls

    o problema é que não salva no banco de dados a hora do nosso fuso horario né.

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

      Isso pq depende da localidade do servidor, mas isso pode ser consertado, pesquisa sobre a função date_default_timezone_set

      • Sls

        ninguem faz video aula falando sobre isso e no site do proprio php é confuso demais pra entender.

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

          Dificilmente vc vai encontrar uma vídeo aula falando sobre esse assunto,mas encontra n tutoriais falando sobre timezone no php

  • Joabef1

    opa olha eu de novo aqui cara 
    como que eu faço para saber quantas pessoas estão online no chat 

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

      Vc faria a mesma coisa q o metodo existeNome, retornando o total, e o SQL ficaria ao assim:

      SELECT COUNT(*) FROM chat GROUP BY nome

    • Joabef1

      fiz mais nada mudou 

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

        retornou algum valor ?


Hospedado por Hostnet - Hospedagem de sites

VAB - Todos os direitos reservados - 2008 / 2012

Developed by: MX Web Studio

Mais em PHP (164 of 230 articles)