Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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..
mais bem vamos la pro sistema.
descrição dos arquivos do cliente
chat.js // arquivo js que verifica as mensagens do cliente;
checaMsg.php //responsavel em verificar se o atendente enviou a resposta
novaMsg.php //faz a verificação se ainda está apberta a sessão e fechou informa que o atendimento foi encerrado.
indexCliente.php // chat por si, e local de login.
Descrição dos arquivos atendente
chat2.js // arquivo js que verifica as mensagens do Atendente;
checaMsg2.php //responsavel em verificar se o atendente enviou a resposta
novaMsg2.php //faz a verificação se ainda está apberta a sessão e fechou informa que o atendimento foi encerrado.
indexAtendente.php // chat por si, e local de login.
bem os arquivos de cliente e do atendente são praticamente os mesmo.
ainda tem os arquivos conecta.php e open.js, esses arquivos colocarei no final do post..
bem vamos aos arquivos eles estão todos comentados.
CHAT.JS
<!--php--><div class='highlight_syntax_top'>PHP</div><div class='highlight_syntax_main'><!--php1--><div class="php">//dispara a função que lê o servidor
window.onload = function(){
window.setInterval('ChecaMsg()', 2000);
}
//envia uma nova mensagem
function EnviaMsg(msg){
ExibirMsg("<p><b>Você:</b> "+msg+"</p>");
var url="novaMsg.php?msg="+encodeURIComponent(msg);
document.getElementById("msg").value='';
requisicaoHTTP("GET",url,true);
}
//busca novas mensagens
function ChecaMsg(){
requisicaoHTTP("GET","checaMsg.php",true);
}
function ExibirMsg(msg){
var saida = document.getElementById("texto");
var nova = document.createElement('div');
nova.innerHTML = msg;
saida.appendChild(nova);
saida.scrollTop = 100000; // rolagem da pagina automática.
}
//exibe as novas mensagens
function trataDados(){
var info = ajax.responseText;
if(info)
ExibirMsg(info);
}
</div><!--php2--></div><!--php3-->
CHECAMSG.PHP
<!--php--><div class='highlight_syntax_top'>PHP</div><div class='highlight_syntax_main'><!--php1--><div class="php"><?php
$gmtDate = [gmdate](http://br.php.net/gmdate)("D, d M Y H:i:s");
[header](http://br.php.net/header)("Expires: {$gmtDate} GMT");
[header](http://br.php.net/header)("Last-Modified: {$gmtDate} GMT");
[header](http://br.php.net/header)("Cache-Control: no-cache, must-revalidate");
[header](http://br.php.net/header)("Pragma: no-cache");
[header](http://br.php.net/header)("Content-Type: text/html; charset=ISO-8859-1");
include "conecta.php";
$mensagens="";
$res = mysqli_query($con,"select nome,msg from atendimento where origem='A' and msg<>''");
for($i=0;$i<mysqli_num_rows($res);$i++){
$dados = mysqli_fetch_row($res);
$nome = $dados[0];
$msg = $dados[1];
$mensagens .="<p style="background-color:#E9E9E9"><b>" . ucwords($nome) . ": </b> " . strtoupper($msg) . "</p>";
$res2 = mysqli_query($con,"delete from atendimento where origem='A' and msg='$msg'");
}
[echo](http://br.php.net/echo) $mensagens;
?>
</div><!--php2--></div><!--php3-->
NOVAMSG.PHP
<!--php--><div class='highlight_syntax_top'>PHP</div><div class='highlight_syntax_main'><!--php1--><div class="php"><?php
[session_start](http://br.php.net/session_start)();
$idConversa = [session_id](http://br.php.net/session_id)();
include "conecta.php";
[import_request_variables](http://br.php.net/import_request_variables)("gc");
if(($msg)){
//verifica se a sessão ainda está aberta
$res = mysqli_query($con, "select * from atendimento where nome='$idConversa' and msg=''");
if(mysqli_num_rows($res)>0){
$res = mysqli_query($con,"insert into atendimento(nome,origem,msg) values('$nomeCliente','C','$msg')");
}
else{
[echo](http://br.php.net/echo) "<script>alert('Atendimento ja encerrado!'); window.location='indexCliente.php';</script>";
}
}
?>
</div><!--php2--></div><!--php3-->
INDEXCLIENTE.PHP
<!--php--><div class='highlight_syntax_top'>PHP</div><div class='highlight_syntax_main'><!--php1--><div class="php"><?php
[ob_start](http://br.php.net/ob_start)();
?>
<?php
//inicio dos comandos para o chat.
include "conecta.php"; // incluo a conexão com o banco de dados.
session_start(); //inicio a sessão
$idConversa = session_id(); //obtenho a identificação da sessão iniciada
//verifico se há algum atendente online.
$at = mysqli_query($con,"select nome from atendimento where origem='A' and msg=''");
//usamos as letras A para atendendo e C para mensagens enviadas pelo usuário.
if(mysqli_num_rows($at)==0){
[echo](http://br.php.net/echo) "<html><body>";
[echo](http://br.php.net/echo) "<h2 align=center>No momento não existem usuários onlines.</h2>";
[echo](http://br.php.net/echo) "</body></html>";
[exit](http://br.php.net/exit)();
}
else{
$dados = mysqli_fetch_row($at);
$atend = $dados[0];
//verifico se o atendente está ocupado.
$oc = mysqli_query($con,"select * from atendimento where origem='C' and nome <> '$idConversa'");
if(mysqli_num_rows($oc)>0){
[echo](http://br.php.net/echo) "<html><body>";
[echo](http://br.php.net/echo) "<h2 align='center'>O atendente está ocupado no momento.</h2>";
[echo](http://br.php.net/echo) "</body></html>";
[exit](http://br.php.net/exit)();
}
}
//exibe o formulário de login
if(($_POST["nome"]) || [empty](http://br.php.net/empty)($_POST["nome"])){
?>
<!-- inicio aqui o conteudo html -->
<html>
<head>
<title>Chat de atendimento Online</title>
</head>
<body>
<center>
<h2 style="color:#CCCCCC">Atendimento Online</h2>
<form name="login" method="post" action="indexCliente.php">
<div style="background-color:#999999; color:#FFFFFF">
Seu nome:
</div>
<div style="background:#CCCCCC">
<input type="text" name="nome" maxlength="65" size="50" />
<input type="Submit" name="Submit" value="Entrar" />
</div>
</form>
</center>
</body>
</html>
<!-- aqui termino o mode html do formulário de identificação -->
<?php
}//fecho o if de verificação de se foi ou não preenchido o login.
else{
//inicia o chat
$nome = [ucfirst](http://br.php.net/ucfirst)($_POST["nome"]);
[setcookie](http://br.php.net/setcookie)("nomeCliente", $nome);
$ins = mysqli_query($con,"insert into atendimento(nome,origem,msg) values('$idConversa','C','')");
$ins = mysqli_query($con,"insert into atendimento(nome,origem,msg) values('$nome','C','[entrou no chat]')");
//fecho as linhas em php
?>
<!-- reinicio os codigos html agora do chat -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml"](http://www.w3.org/1999/xhtml)>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Chat do atendente</title>
<script src="open.js"></script>
<script src="chat.js"></script>
</head>
<body>
<h2 align="center">Você está no atendimento online</h2>
<table width="100%" border="0" cellpadding="0" cellspacing="3">
<tr>
<td bgcolor="#ECFFEC">
<div id="texto" style="width:100%; height:300px; overflow:auto">
<p style="background-color:#E9E9E9"><b><?php [echo](http://br.php.net/echo) [ucwords](http://br.php.net/ucwords)($nomeAtendente); ?>:</b> Olá
<?php [echo](http://br.php.net/echo) $nome; ?>, seja bem vindo ao nosso atendimento on-line, em que posso ser util?</p>
</div>
</td>
</tr>
<tr>
<td>
<form action="java script:void%200" name="formAjax" onSubmit="EnviaMsg(this.msg.value); return false">
Sua Mensagem:
<input type="text" name="msg" id="msg" size="50" maxlength="150" />
<input type="submit" name="Submit" value="Enviar" />
</form>
</td>
</tr>
</table>
<p align="right"><a href="java script:window.close();">Sair do Chat</a></p>
</body>
</html>
<?php
}//fecha o que resta
?>
</div><!--php2--></div><!--php3-->
Arquivos do Atendente.
CHAT2.JS
<!--php--><div class='highlight_syntax_top'>PHP</div><div class='highlight_syntax_main'><!--php1--><div class="php">// JavaScript Document
//dispara a função que lê o servidor
window.onload = function(){
window.setInterval('ChecaMsg()', 2000);
}
//envia uma nova mensagem
function EnviaMsg(msg){
ExibirMsg("<p><b>Você:</b> "+msg+"</p>");
var url="novaMsg2.php?msg="+encodeURIComponent(msg);
document.getElementById("msg").value='';
requisicaoHTTP("GET",url,true);
}
//busca novas mensagens
function ChecaMsg(){
requisicaoHTTP("GET","checaMsg2.php",true);
}
function ExibirMsg(msg){
var saida = document.getElementById("texto");
var nova = document.createElement('div');
nova.innerHTML = msg;
saida.appendChild(nova);
saida.scrollTop = 100000; //rolagem automatica
}
function NovoAtendimento(){
var saida = document.getElementById("texto");
saida.innerHTML = ''; // limpa o texto do chat
requisicaoHTTP("GET","excluiMsg2.php",true);
}
//atualiza texto do chat
function trataDados(){
var info = ajax.responseText;
if(info)
ExibirMsg(info);
}
</div><!--php2--></div><!--php3-->
CHECAMSG2.PHP
<!--php--><div class='highlight_syntax_top'>PHP</div><div class='highlight_syntax_main'><!--php1--><div class="php"><?php
[ob_start](http://br.php.net/ob_start)();
$gmtDate = [gmdate](http://br.php.net/gmdate)("D, d M Y H:i:s");
[header](http://br.php.net/header)("Expires:{$gmtDate}GMT");
[header](http://br.php.net/header)("Last-Modified: {$gmtDate}GMT");
[header](http://br.php.net/header)("Cache-Control: no-cache, must-revalidate");
[header](http://br.php.net/header)("Pragma: no-cache");
[header](http://br.php.net/header)("Content-Type: text/html; charset=ISO-8859-1");
include "conecta.php";
$mensagens = "";
$res = mysqli_query($con, "select nome,msg from atendimento where origem='C' and msg <> ''");
for($i=0;$i<mysqli_num_rows($res);$i++){
$dados = mysqli_fetch_row($res);
$nome = $dados[0];
$msg = $dados[1];
$mensagens .= "<p style="background-color:#E9E9E9">
<b>" . ucwords($nome) . ": </b>
" . strtoupper($msg) . "
</p>";
$res2 = mysqli_query($con, "delete from atendimento where origem='C' and msg='$msg'");
}
if($mensagens!=""){
echo "$mensagens
<script>alert('Você recebeu uma mensagem');</script>";
}
else{
echo "";
}
?>
</div><!--php2--></div><!--php3-->
NOVAMSG2.PHP
<!--php--><div class='highlight_syntax_top'>PHP</div><div class='highlight_syntax_main'><!--php1--><div class="php"><?php
[ob_start](http://br.php.net/ob_start)();
include "conecta.php";
[import_request_variables](http://br.php.net/import_request_variables)("gc");
if(($msg)){
//verifica se há usuário conectado
$res = mysqli_query($con, "select * from atendimento where origem='C'");
if(mysqli_num_rows($res)>0){
$res = mysqli_query($con, "insert into atendimento(nome,origem,msg) values('$nomeAtendente','A','$msg')");
}
}
?>
</div><!--php2--></div><!--php3-->
INDEXATENDENTE.PHP
<!--php--><div class='highlight_syntax_top'>PHP</div><div class='highlight_syntax_main'><!--php1--><div class="php"><?php
[ob_start](http://br.php.net/ob_start)();
?>
<?php
include "conecta.php";
$log = mysqli_query($con,"select nome,email,senha from user where email='" . $_POST["email"] . "' and senha='" . $_POST["senha"] . "'");
$ver = mysqli_num_rows($log);
$row = mysqli_fetch_row($log);
$nomeAtendente = $row[0];
$email = $row[1];
$senhaChat = $row[2];
/* ///////////////////////
definido aqui o nome
de atendente e a senha
essa parte pode ser alterada para
buscar os dados em uma tabela..
///////////////////////////// */
//exibe o formulário de login caso for verdade.
if(($_POST["senha"]) && ($_POST["email"]) || $_POST["senha"]!=$senhaChat && $_POST["email"]!=$email){
?>
<html>
<body>
<h2 align="center">Login do atendente</h2>
<form action="indexAtendente.php" name="login" method="post">
<div align="center">
<p>
E-[mail](http://br.php.net/mail): <input type="text" name="email" id="email"
size="15"/><br /><br />
Senha: <input type="password" name="senha" id="senha"
size="15" maxlength="15" />
</p>
<p>
<input name="iniciar" type="submit" id="Iniciar" value="Logar" />
</p>
</div>
</form>
</body>
</html>
<?php
}//fehca o if
else{
[ob_start](http://br.php.net/ob_start)();
//inicia o chat
include "conecta.php";
$res = mysqli_query($con, "insert into atendimento(nome,origem,msg) values('$nomeAtendente','A','')");
[setcookie](http://br.php.net/setcookie)("nomeAtendente", $nomeAtendente);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="[http://www.w3.org/1999/xhtml"](http://www.w3.org/1999/xhtml)>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Chat do atendente</title>
<script src="open.js"></script>
<script src="chat2.js"></script>
</head>
<body>
<h2 align="center">Atendimento via Chat</h2>
<table width="100%" border="0" cellpadding="0" cellspacing="3">
<tr>
<td bgcolor="#FFFF99">
<div id="texto" style="width:100%; height:300px; overflow:auto"></div>
<div align=center id=sound></div>
</td>
</tr>
<tr>
<td>
<form action="java script:void%200" name="formAjax" onSubmit="EnviaMsg(this.msg.value); return false">
Sua Mensagem:
<input type="text" name="msg" id="msg" size="50" maxlength="150" />
<input type="submit" name="Submit" value="Enviar" />
</form>
</td>
</tr>
</table>
<p align="right">
<a href="java script:NovoAtendimento();">Finalizar Atendimento atual</a>
|
|
<a href="logout.php">Encerrar Chat(Sair)</a>
</p>
</body>
</html>
<?php
}//fecha else
?>
</div><!--php2--></div><!--php3-->
excluirMsg2.php
<?phpob_start();/*$gmtDate = gmdate("D, d M Y H:i:s");header("Expires: {$gmtDate} GMT");header("Last-Modified: {$gmtDate} GMT");header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache");header("Content-Type: text/html; charset=ISO-8859-1");*/include "conecta.php";import_request_variables("c");$res = mysqli_query($con,"delete from atendimento");$res = mysqli_query($con,"insert into atendimento(nome,origem,msg) values('$nomeAtendente','A','')");print "<center><img src='load.gif' /></center>";?>Logout.php
<?php$gmtDate = gmdate("D, d M Y H:i:s");header("Expires:{$gmtDate}GMT");header("Last-Modified: {$gmtDate}GMT");header("ache-Control: no-cache, must-revalidate");header("Pragma: no-cache");include "conecta.php";$res = mysqli_query($con,"delete from atendimento");header("location:indexAtendente.php");?>Bem não comentei mais os arquivos pq as principais partes estão comentadas .
Abaixo tem as tabelas que uso nesse sisteminha.
tabela de Atendimento.
CREATE TABLE `atendimento` (
`id` int(11) NOT NULL auto_increment,
`nome` varchar(80) NOT NULL,
`origem` varchar(20) NOT NULL,
`msg` text NOT NULL,
PRIMARY KEY (`id`)
) ;
tabela de Usuários.
CREATE TABLE `user` (
`iduser` int(4) NOT NULL auto_increment,
`nome` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL,
`senha` varchar(32) NOT NULL,
PRIMARY KEY (`iduser`)
);
insert da tabela user.;
INSERT INTO `user` VALUES (1, 'bruno capella vilela', 'bcapella@fenixael.com.br', '558875');
Agora vou colcoar a bliblioteca ajax que será necessária para o funcionamento :)/>
OPEN.JS
//iniciando a requisição http e criando o objvar ajax;var dadosUsuario;function requisicaoHTTP(tipo,url,assinc){ if(window.XMLHttpRequest){ ajax = new XMLHttpRequest(); } else if(window.ActiveXObject){ ajax = new ActiveXObject("Msxml2.XMLHTTP"); if(!ajax){ ajax = new ActiveXObject("Microsoft.XMLHTTP"); } } if(ajax){ iniciaRequisicao(tipo,url,assinc); } else{ alert("Não possui suporte a AJAX"); }}// inicializao objeto criado e envia os dados function iniciaRequisicao(tipo,url,bool){ ajax.onreadystatechange=trataResposta; ajax.open(tipo,url,bool); ajax.setRequestHeader("Content-Type", "application/x-www-form-urlecncoded; chanset=UTF-8"); //ajax.overrideMimeType("text/xml"); /* usado somente com mozila */ ajax.send(dadosUsuario);}function enviaDados(url){ criaQueryString(); requisicaoHTTP("POST",url,true);}function criaQueryString(){ dadosUsuario=""; var frm = document.forms[0]; var numElementos = frm.elements.length; for(var i=0;i<numElementos;i++){ if(i< numElementos-1){ dadosUsuario += frm.elements[i].name+"="+ encodeURIComponent(frm.elements[i].value)+"&"; }else{ dadosUsuario += frm.elements[i].name+"="+ encodeURIComponent(frm.elements[i].value); } }}function trataResposta(){ if(ajax.readyState==4){ if(ajax.status ==200){ trataDados(); }else{ alert("Problema na requisição com o objeto XMLHttpRequest."); } } }
creio que o arquivo conecta todos sabem fazer né:)/>
bem por isso não vou posta-lo
porem se alguem tiver duvida é so falar.
bem modificações e sugestões são bem vindas.
bem espero que agrade :)/>
quem preferir tem o arquivo completo para upload.. tb :)/>
Pois é Bruno,a gente pode se apoderar de seu feito?
Vou ser sincero, to desenvolvendo um sisteminha e meu cliente me pediu um atendimento online e eu ainda ia pensar o que fazer..mas agora .. http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif/>
Abraço!!
Po gente. ta no laboratorio e pra quem quiser usar mesmo. estejam avontade. usem e abusem do script
http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif/>
Testei o script aqui e não funciono...
Meu arquivo de conecção:
conecta.php
<?php$host = "localhost"; //servidor de banco de dados$user = "root"; //usuario do banco de dados$senha = "xxxxx"; //senha do banco de dados$db = "sistema_chat"; //banco de dados$sqlconnect=mysql_connect($host, $user, $senha);if(!$sqlconnect)die("Não conectou com o banco de dados.");$sqldb=mysql_select_db("$db",$sqlconnect);if(!$sqldb)die("Não foi possivel selecionar a base de dados.");?>se possivel poste aqui o link com o script completo... vlw http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/>
Mutar, qual o erro que está dando??e acima tem um arquivo zip que tem o chat completo. e ja tentou tirar as aspas da variável db?$sqldb=mysql_select_db("$db",$sqlconnect);assim $sqldb=mysql_select_db($db,$sqlconnect);testa aese possivel colocar o erro. que está dando.
e acima tem um arquivo zip que tem o chat completo.
..Aonde ta isso velho?Abraço!
po tava la. kakkaa. deve ter saido na hora de inserir e nao percebi. mais vou colocar mais tarde denovo. :)/>
O Bruno coloca o zip ai pra nos com o sistema completo
valeu http://forum.imasters.com.br/public/style_emoticons/default/joia.gif/>
Seria uma boa mesmo por o link facilitaria muito...
em relação ao erro:
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\Arquivos de programas\VertrigoServ\www\atende\indexAtendente.PHP on line 8Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\Arquivos de programas\VertrigoServ\www\atende\indexAtendente.PHP on line 9Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, null given in C:\Arquivos de programas\VertrigoServ\www\atende\indexAtendente.PHP on line 10
Tenta fazer assim:
No erro se vcs observarem esta apontando pra:
mysqli_query
remova o i do mysqli_query
Agora assim:
$res = mysql_query ($con, "select * from bla bla bla e assim vai");
tente fazer assim:
o server neste erro não esta entendendo que a variável $con é igual a $res, então deduz que temos q especificar.
$res = mysql_query
ficaria:
$con = mysql_query
e o $res fica assim
$res = $con;
Assim resolvi esses erros, mas se estiver errado a minha lógica por favor me corrijam.
Um abraço
po gente
desculpa a demora ae. é que tenho andado sem tempo pra nada
e no caso do arquivo zip..
não to conseguindo colocar no forum e estou com um problema no meu site que nao posso disponibilizar pra download :0
então quem quizer pode enviar o e-mail por mp ou pelo meu e-mail cadastrado que respondo com o chat em anexo.
enquanto ao erro do mutar, é o seguinte.
nesse sistema eu uso o mysqli e não o mysql pura..
se quiser entender mais sobre mysqli. olhe o tudo abaixo.
http://www.php.net/manual/pt_BR/ref.mysqli.php
recolocando.
mutar
provavelmente sua conexão com o banco está cetando para mysql e nao para mysqli
bem
colcoa assim
$conn = mysqli_connect("server","user","senha","banco");
isso resolve seu problema e verifica se tem suporte a essa função.
se nao me engano a partir do php4 e mysql 4.1, verifique no teu php.ini se a extrenção mysqli esta liberada
se nao tiver
libere e reinicie o apache.
so acertando o q o gusgoçalves falou, a var $con é a conexão com o bd porem se alterar para mysql você deve alterar a posição tb..
assim
$sql = mysql_query("com,ando sql", $con);
beleza..
qualquer duvida posta ae
bruno ainda faltam algumas paginas, como por exemplo a excluimsg2.phplogout.phpse possivel me manda o arquivo que eu hospedo e deixo o link para a galera!!me manda uma MPmas ficou show o sistemaabraço
po foi mal não responde antesmais os arquivos que estavam faltando ja os coloquei no script. vlww.
Muito legal esse sistema... funciona super bem.. mais não sei se é só comigo ou com mais alguém acontece é que no IE a função alert() para avisar o atendente que chegou uma nova msg não funciona.. no FireFox roda beleza mais no IE......Valeu e parabéns pelo programa!!abc
to precisando fazer umas modificações nesse sistema mais to meio sem tempo,. mais é coisa de navegador. tenho que acertar isso :D/>ja tinha percebido :D/>
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+
beleza. guilherme. Conversando com outros amigos ja tive varias ideias. mais to totalmente sem tempo. pra mexer nisso. toda ajuda. é bem vinda:D
>
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+
Desculpem minha ignorância mas baixei o arquivo aí acima e resolvi testar aqui mas surgiu uma dúvida, como faço para testar? Tenho que rodar a página indexAtendente.php ? É que quando rodo ela, preencho o e-mail e senha (sim, eu troquei no BD http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/> ) mas fica na mesma página, não acontece nada. Como funciona? Alguém poderia me ajudar a entender? É que achei muito legal o sisteminha!
Obrigado!
>
>
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+
Desculpem minha ignorância mas baixei o arquivo aí acima e resolvi testar aqui mas surgiu uma dúvida, como faço para testar? Tenho que rodar a página indexAtendente.php ? É que quando rodo ela, preencho o e-mail e senha (sim, eu troquei no BD http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif/> ) mas fica na mesma página, não acontece nada. Como funciona? Alguém poderia me ajudar a entender? É que achei muito legal o sisteminha!
Obrigado!
Opa! Erro meu galera! Foi mal! Fiz caca, eu assumo! Hehehehe! Tá 10!
Obrigado aí meu povo!
Muito Bom mesmo, e quanto ao bug, na verdade eu tente uma pá de coisa pra acertar, mas nada feito
IE maudito >(
Mas estou esperando a nova versão, espero que venha :)/>
tenho esse script no site que eu fiz pra uma materia da faculdade, ta com uns bugs se puderem arrumar, me enviem por email
marlonleandrorpg<arroba>gmail<ponto>com
entrem ai galerinha
http://mrj2.6te.net/mrj2/chat/chat/indexAtendente.php
login: atendente_teste
senha: 123456
eu tentando implementar, mas você vai ter que acompanhar o topico, mandar na mãozinha é moleza demais ;)/>
Aeeeeeeeee o sistema funcionou 98% http://forum.imasters.com.br/public/style_emoticons/default/clap.gif/>
Tem 2 coisas que ta bugando...
1 - Quando 1 cliente abre outra janela com o mesmo PC, o atendente envia msg para a janela que ele abriu por ultimo e não para janela do primeiro chat.
2 - Quando digita alguns caracteres buga as letras. ex: Ç Ã ...
http://forum.imasters.com.br/public/style_emoticons/default/worshippy.gif/> Mais o sistema fico doidera http://forum.imasters.com.br/public/style_emoticons/default/worshippy.gif/>
aqui tenho alguns problemas
1º - na linha 7, onde pega a senha e o e-mail no MySQL, da erro falando
Undefined index: email
Undefined index: senha
e o atendente loga mesmo sem colocar login e senha =[
2º - Quando o Atendente fala no chat da esses erros
Notice: import_request_variables() [function.import-request-variables]: No prefix specified - possible security hazard in D:\Arquivos de Programas\EasyPHP 2.0b1\www\funcional chat\novaMsg2.php on line 4
Notice: Undefined variable: nomeAtendente in D:\Arquivos de Programas\EasyPHP 2.0b1\www\funcional chat\novaMsg2.php on line 9
No Chat do Cliente também dá o erro 2.1
Acho que so falta isso pra funciona a 100% aqui :D/>
Eu testei e não vi esses erros ai, mas é facil de resolver, você pode desabilitar os warmings e notices do servidor
por ini_set() ou .htaccess....mas pelo proprio arquivo pode ser feito é so ver as variaveis que estão
sem declaração
cara posso usar isso publicamente!!abraço