Jump to content
Bruno Capella

Chat de atendimento Online

Recommended Posts

Alguem tem intenção ou interece de desenvolver os seguintes melhoramento para esse sistema?

-Atendimento multi-cliente

-Fila de espera para clientes

-Timeout para quando o cliente ou atendente fecham a janela inadvertidamente

 

Talvez seria possivel uma parceria =]

Share this post


Link to post
Share on other sites

olá bruno! beleza?!

 

Estou procurando um chat para atendimento on-line, estou querendo colocar no site da empresa em que trabalho. Este código que você fez... tem ele rodando em algum lugar para eu ver como fica? Eu tenho que colocar cada código destes em um arquivo e salvar como php? Se puder me ajudar agradeço desde já!

 

Obrigado amigo!

Share this post


Link to post
Share on other sites

Parabens muito bom o chat de atendimento.

 

Só estou com um problema:

- Quando o cliente sai do chat sem clicar no link para encerrar, o proximo cliente que tentar entrar recebe a mensagem (atendente ocupado)

Mesmo eu clicando em Finalizar chat na minha area de atendente, no caso eu preciso sempre sair do chat e logar novamente para funcionar.

 

É possivel resolver este problema?

 

Obrigado

Roger

Share this post


Link to post
Share on other sites

opa roger é possivel sim.

 

é so você chamar no body o onunload e direcionar para uma pagina que faça encerrar a sessão.

 

pode ser a logof ou sair.. que está no exemplo.

 

veja

<script>

function sairFecha(){

alert("sua sessão será finalizada");

window.location = 'sair.php';

}

</script>

<body onunload='sairFecha()'>

 

você pode implementar tb utilizando o ajax.

 

ai é contigo :D/>

Edited by Mário Monteiro

Share this post


Link to post
Share on other sites

Opa, eu denovo...

Não consigo arrumar a acentuação.

Quando se escreve funciona certinho, mas quando recebe a mensagem aparece caracteres errados na acentuação.

 

Qual CHARSET devo colocar?

 

Obrigado

Roger

Share this post


Link to post
Share on other sites

O script ajax chat on-line atendimento não rodou aqui!!!! Não consegui fazer o conecta.php para o banco de dados e não roda o mysqli...

 

 

 

pode me ajudar, baixei outro da rede mas está dando pau no SID...

 

abraços.

Não consegui fazer o conecta.php para o banco de dados

Share this post


Link to post
Share on other sites

instalei aqui e funcionou perfeitamente, pretendo ver o que posso fazer pra implementar uma fila de atendimento

 

ta aqu o sql se alguem precisar

 

# MySQL-Front 3.2  (Build 2.16)

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET CHARACTER SET 'latin1' */;


# Host: localhost	Database: chat
# ------------------------------------------------------
# Server version 4.1.21-community

#
# Table structure for table atendimento
#

CREATE TABLE `atendimento` (
  `id` int(6) unsigned NOT NULL auto_increment,
  `nome` varchar(50) default NULL,
  `msg` text,
  `origem` char(1) default 'A',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;

#
# Dumping data for table atendimento
#

INSERT INTO `atendimento` VALUES (2,'jose','','A');
INSERT INTO `atendimento` VALUES (3,'5c892ccd97ac2f48f945f83078cf0318','','C');

#
# Table structure for table user
#

CREATE TABLE `user` (
  `Id` int(6) unsigned NOT NULL auto_increment,
  `email` varchar(50) default NULL,
  `senha` varchar(50) default NULL,
  `nome` varchar(50) default NULL,
  PRIMARY KEY  (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

#
# Dumping data for table user
#

INSERT INTO `user` VALUES (1,'a','a','jose');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Share this post


Link to post
Share on other sites

Bem pessoal, fiz esse sisteminha de atendimento online em php+ajax,

 

bem o sisteminha é bem simples.

 

ta rodando direitinho para um atendente online.

 

para colocar mais atendentes precisa fazer umas modificações para identificar pra qual atendente está sendo enviada a mensagem........

Este código é muito bom. Funcionou que é uma beleza...!

 

Mas tem um problema: Tenh oque ficar olhando a tela do Atendimento para saber se tem alguem falando. Estou em busca de um anjo que me diga como faço para soar um alarme, ou abrir um popup... sei lá...

 

se alguem tiver uma luz, por favor, me manda poraqui.

 

Grande abraço

Share this post


Link to post
Share on other sites

Olá,

 

Aqui funcionou Legal! http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

 

Porém, eu consigo ler oque o cliente escreve, mas o cliente não consegue ler oque o atendente escreve no chat...

 

Onde será que está o erro? sou iniciante, se alguém puder me orientar, ficarei GRATO!

 

Grande abraço! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Edited by Mário Monteiro

Share this post


Link to post
Share on other sites

Boa tarde pessoal, onde posso baixar esse chat, não consegui encontrar em lugar algum.

Já que está no Laboratório de scripts (PHP) dá pra baixar né?

Valeu e fiquem na paz.

Share this post


Link to post
Share on other sites

Bom dia, pessoal do fórum...

... será que vocês poderiam me ajudar indicando onde consigo fazer o download desse script?

Procurei pelo google alguma referência e não consegui nada, seria de grande ajuda para mim.

Valeu e fiquem na paz.

Share this post


Link to post
Share on other sites

Bruno.. você esqueçeu de postar os créditos ao autor do livro o qual você retirou 99% deste script..

Créditos a Juliano Niederauer autor do livro: Web interativa com Ajax e PHP

que por sinal estou lendo e é muito bom recomendo

 

Vlw

Share this post


Link to post
Share on other sites

Me senti na liberdade de fazer um RAR com todos os arquivos, inclusive o de conexão. Passei tudo pra mysql ao invés de mysqli e resolvi alguns Bugs também.

 

Pretendo fazer a modificação pra atendentes múltiplos.

 

Segue o link do chat testado e funcionando: http://rapidshare.com/files/64896125/chat.rar.html

 

:)

 

t+

Olá Guilherme Medeiros,

 

Então peguei o script que você disponibilizou mas esta faltando a estrutura da tabela "messages". Tem como você enviar ela?

 

Obrigado.

Edited by Mário Monteiro

Share this post


Link to post
Share on other sites

create database chat;
use chat;
CREATE TABLE `atendimento` (
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`nome` varchar(80) NOT NULL,
`origem` varchar(20) NOT NULL,
`msg` text NOT NULL
)ENGINE=MyISAM;


CREATE TABLE `user` (
`iduser` int(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`nome` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`senha` varchar(32) NOT NULL
)ENGINE=MyISAM;

INSERT INTO `user` VALUES (NULL, 'bruno capella vilela', 'bcapella@fenixael.com.br', '123');

http://www.codigofonte.net/scripts/php/chat

Share this post


Link to post
Share on other sites

Capella!

Achei legal dar um nome a este sistema!

Mas prezado Capela, como sou leigo e iniciante nesta área, deu muito bug aqui... não consegui rodar nada!

 

Seria possível me enviar o sistema capella em zip?

 

betezek@betezek.com.br

 

O pessoal aí adorou, estão participando com muitas idéias, eu acho que vai dar samba e todos irão ficar satisfeitos com sua nobre e voluntária criação.

 

Agradeço!

Share this post


Link to post
Share on other sites

O Chat online tá funcionando blza.

Contudo há alguns problemas que precisam ser resolvidos:

1)Quando o cliente sair, fechar a janela do chat e o chat ser liberado para outro cliente. RESOLVIDO

2)Ficar verificando se há algum atendente ou se o chat estar desoculpado. RESOLVIDO PARCIALMENTE

3)Quando o cliente sair, avisar ao atendente sobre o fato EM ABERTO

4)Quando o cliente entrar no chat avisar por som, que há alguém esperando atendimento. EM ABERTO

 

Estrutura um pouco melhor do bd:

 

create database chat;
use chat;
--
-- TABELA REFERENTE AS MENSAGENS
--
DROP TABLE IF EXISTS `atendimento`;
CREATE TABLE `atendimento` (
`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`nome` varchar(80) NOT NULL,
`origem` varchar(20) NOT NULL,
`msg` text NOT NULL
)ENGINE=MyISAM;

--
-- TABELA REFERENTE AO CADASTRO DOS ATENDENTES
--
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`iduser` int(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`nome` varchar(50) NOT NULL,
`email` varchar(50),
`senha` varchar(32) 
)ENGINE=MyISAM;

INSERT INTO `user` VALUES (NULL, 'Rodrigo', '@', '123');

 

Atualizei os comandos em PHP versão 3.2 para uma versão versão superior a 4.3.

 

Estou esperando o Capella para terminarmos isso.

 

abrs,

Rodrigo

Share this post


Link to post
Share on other sites

Ola pessoal ontem estava a procura de algo parecido e este topico me chaou muito a atenção.

 

Baixei o unico link que achei de download e estava meio incompleto entao fiz umas incrementadas na coisa toda.

 

A principio as funcionalidades que adicionei foram a seguinte:

-Problema quado dighitava-se um script em javascript no campo de texto foi resolvido.

-Distinção entre chats.

-Possibilidade de mais de um operador atendendo.

-Historico do Char.

-Alterações e criação de algmas tabelas MySQL.

-Aprimoramento da integração entre o javascript e o PHP.(Isso foi meio complicado xD)

-Armazenamento de MSGs

 

Vou explicar mais ou menos como fiz o procedimento.

 

Apos o cliente digitar um nome, o mesmo é passado pelo comando post a uma pagina de verificação de atendentes, caso alguma tendente esteja com status¹ 1 e cid² 0 ele pega o aid³ do operador como sendo "padrão" para aquele chat e altera na tabela de usuarios o cid² do operador para o codigo da seção iniciada pelo cliente.

Apos isso fica identificado as menssagems com o seu devido aid³, cid² quem enviou e se ja foi vista ou não.

 

Digamos que temos 2 operadores cadastrados.

O primeiro é Chico com aid 1.

O segundo Francisco aid 2.

 

O cliente entra e digita seu nome

Supondo que o chico ja esta em atendimento, a rotina vai ver que o cid dele esta diferente de 0 entao vai descartalo passando para o proximo atendente, o francisco esta com cid 0 entao ele vai pegar o aid do francisco mudar para o ID da sessão e atualizar a tabela MySQL do aid do francisco para o mesmo id da seção que ele acabou de cirar.

 

Assim quando ele enviar uma MSG ela vai ficar +- assim

msg="abc"

aid="2"

cid=sessão.

 

E a leitura é feita da mesma foram pois.

 

Agradeço mutio ao Bruno Capella pelo ajax a qual ano manjo nada.

Estarei aprimorando o codigo e distribuindo em GNU.

Possivelmente acompanheo topico para sabnar algumas duvidas, as os principais bugs ja foram solucionados e por alta de tempo ano resolvi os outros.

 

-BUGS

-O Cliente registra uma sessão anterior a qual esta na tabela de users.(Utilizar ouytro metodo para grar uma sessão).

-Fraquesa no PHP quando o usuario entrar pois pode facilmente ser quebrada com injection.(Vendo).

 

 

Segue abaixou o source que fiz.

http://www.megaupload.com/?d=YRG84NP6

  • +1 1

Share this post


Link to post
Share on other sites

@Seu Severino

Gostaria de saber como você fez em relação ao cliente fechar o chat?

 

 

@post

 

Aparentemente haviam alguns Bugs ainda que permitiam SQL injection e Script Injection atravez do campo de texto.

Fiz um tratamento nas strings que são repassadas ao servidor para evitar isso.

 

 

No script do Atendente e do cliente adicione as seguinte funções:

function TrataMsgExibir(msg){
	msg=msg.replace(new RegExp(/--@script@/g),"<\\");
	msg=msg.replace(new RegExp(/\\\\/g),"\\");
	msg=msg.replace(new RegExp(/--@barra@/g),"/");
  msg=msg.replace(new RegExp(/''/g),"'");
  msg=msg.replace(new RegExp(/--@barra2@/g),"\\");
 	return msg;
}

function TrataMsgEnviar(msg,nome,aid,cid){
  msg=msg.replace(new RegExp(/\\/g),"--@barra2@");
  msg=msg.replace(new RegExp(/'/g),"''");
  msg=msg.replace(new RegExp(/\//g),"--@barra@");
  EnviaMsg(msg,nome,aid,cid);
}

e por final no botão de enviar do formualrio coloque:

onde diz

<form action="java script:void%200" name="formAjax" onSubmit="EnviaMsg(this.msg.value.replace(new RegExp(/<\//g),'////'),'<?php echo $_SESSION['cli'] ?>',<?php echo $_SESSION['id'] ?>,'<?php echo session_id() ?>'); return false">
por

<form action="java script:void%200" name="formAjax" onSubmit="TrataMsgEnviar(this.msg.value.replace(new RegExp(/<\//g),'--@script@'),'<?php echo $_SESSION['cli'] ?>',<?php echo $_SESSION['id'] ?>,'<?php echo session_id() ?>'); return false">

Ta ficando bacana a parada, achoq ue com a cooperação da galera o trosso vai pra dfrente :)

 

Abraços.

 

@EDIT

Link para download com as atualizaçãoes

http://www.megaupload.com/?d=630CFPZE

Edited by Mário Monteiro

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.