Ir para o conteúdo

Publicidade

 Estatísticas do Fórum

  • 0 Usuários ativos

    0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

Cursos Online iMasters
Foto:

Chat de atendimento Online

  • Por favor, faça o login para responder
73 respostas neste tópico

#1 Bruno Capella

Bruno Capella
  • Membros
  • 959 posts

Postado 14 setembro 2007 - 21:32

*
POPULAR

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("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";
$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 $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();
        $idConversa = session_id();
        include "conecta.php";
        import_request_variables("gc");
        if(!empty($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 "<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();
?>
<?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 "<html><body>";
        echo "<h2 align=center>No momento não existem usuários onlines.</h2>";
        echo "</body></html>";
        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 "<html><body>";
                        echo "<h2 align='center'>O atendente está ocupado no momento.</h2>";
                        echo "</body></html>";
                        exit();
                        }
                       
        }
        //exibe o formulário de login
        if(!isset($_POST["nome"]) || 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($_POST["nome"]);
                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...ansitional.dtd">
<html xmlns="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 ucwords($nomeAtendente); ?>:</b> Olá
                 <?php 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();
$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([color=" #DD0000"]"Content-Type: text/html; charset=ISO-8859-1"[/color][color=" #0000BB"])[/color];
[color=" #007700"]include[/color] [color=" #DD0000"]"conecta.php"[/color];
[color=" #000000"]$mensagens[/color] = [color=" #DD0000"]""[/color];

[color=" #000000"]$res[/color] = mysqli_query[color=" #0000BB"]([/color][color=" #000000"]$con[/color], [color=" #DD0000"]"select nome,msg from atendimento where origem='C' and msg <> ''"[/color][color=" #0000BB"])[/color];
        [color=" #007700"]for[/color][color=" #0000BB"]([/color][color=" #000000"]$i[/color]=[color=" #DD0000"]0[/color];[color=" #000000"]$i[/color]<mysqli_num_rows[color=" #0000BB"]([/color][color=" #000000"]$res[/color][color=" #0000BB"])[/color];[color=" #000000"]$i[/color]++[color=" #0000BB"])[/color][color=" #0000BB"]{[/color]
                [color=" #000000"]$dados[/color] = mysqli_fetch_row[color=" #0000BB"]([/color][color=" #000000"]$res[/color][color=" #0000BB"])[/color];
                [color=" #000000"]$nome[/color] = [color=" #000000"]$dados[/color][color=" #0000BB"][[/color][color=" #DD0000"]0[/color][color=" #0000BB"]][/color];
                [color=" #000000"]$msg[/color] = [color=" #000000"]$dados[/color][color=" #0000BB"][[/color][color=" #DD0000"]1[/color][color=" #0000BB"]][/color];
                [color=" #000000"]$mensagens[/color] .= [color=" #DD0000"]"<p style="[/color]background-color:[color=" #FF8000"]#E9E9E9">[/color]
                <b>[color=" #DD0000"]" . ucwords($nome) . "[/color]: </b>
                 [color=" #DD0000"]" . strtoupper($msg) . "[/color]
                </p>[color=" #DD0000"]";
                $res2 = mysqli_query($con, "[/color]delete from atendimento where origem=[color=" #DD0000"]'C'[/color] and msg=[color=" #DD0000"]'$msg'[/color][color=" #DD0000"]");
        }
        if($mensagens!="[/color][color=" #DD0000"]"){
echo "[/color][color=" #000000"]$mensagens[/color]
<script>alert[color=" #0000BB"]([/color][color=" #DD0000"]'Você recebeu uma mensagem'[/color][color=" #0000BB"])[/color];</script>[color=" #DD0000"]";
}
else{
echo "[/color][color=" #DD0000"]";
}
?>
[/color]</div><!--php2--></div><!--php3-->

NOVAMSG2.PHP
<!--php--><div class='highlight_syntax_top'>PHP</div><div class='highlight_syntax_main'><!--php1--><div class="php">[color=" #DD0000 fontweight bold"]<?php[/color]
[color=" #0000BB"]ob_start[/color][color=" #0000BB"]([/color][color=" #0000BB"])[/color];
[color=" #007700"]include[/color] [color=" #DD0000"]"conecta.php"[/color];
[color=" #0000BB"]import_request_variables[/color][color=" #0000BB"]([/color][color=" #DD0000"]"gc"[/color][color=" #0000BB"])[/color];
[color=" #007700"]if[/color][color=" #0000BB"]([/color]![color=" #0000BB"]empty[/color][color=" #0000BB"]([/color][color=" #000000"]$msg[/color][color=" #0000BB"])[/color][color=" #0000BB"])[/color][color=" #0000BB"]{[/color]
        [color=" #FF8000"]//verifica se há usuário conectado[/color]
        [color=" #000000"]$res[/color] = mysqli_query[color=" #0000BB"]([/color][color=" #000000"]$con[/color], [color=" #DD0000"]"select * from atendimento where origem='C'"[/color][color=" #0000BB"])[/color];
                [color=" #007700"]if[/color][color=" #0000BB"]([/color]mysqli_num_rows[color=" #0000BB"]([/color][color=" #000000"]$res[/color][color=" #0000BB"])[/color]>[color=" #DD0000"]0[/color][color=" #0000BB"])[/color][color=" #0000BB"]{[/color]
                        [color=" #000000"]$res[/color] = mysqli_query[color=" #0000BB"]([/color][color=" #000000"]$con[/color], [color=" #DD0000"]"insert into atendimento(nome,origem,msg) values('$nomeAtendente','A','$msg')"[/color][color=" #0000BB"])[/color];
                        [color=" #0000BB"]}[/color]
                [color=" #0000BB"]}[/color]
[color=" #DD0000 fontweight bold"]?>[/color]
</div><!--php2--></div><!--php3-->

INDEXATENDENTE.PHP
<!--php--><div class='highlight_syntax_top'>PHP</div><div class='highlight_syntax_main'><!--php1--><div class="php">[color=" #DD0000 fontweight bold"]<?php[/color]
[color=" #0000BB"]ob_start[/color][color=" #0000BB"]([/color][color=" #0000BB"])[/color];
[color=" #DD0000 fontweight bold"]?>[/color]
[color=" #DD0000 fontweight bold"]<?php[/color]
[color=" #007700"]include[/color] [color=" #DD0000"]"conecta.php"[/color];

[color=" #000000"]$log[/color] = mysqli_query[color=" #0000BB"]([/color][color=" #000000"]$con[/color],[color=" #DD0000"]"select nome,email,senha from user where email='"[/color] . [color=" #000000"]$_POST[/color][color=" #0000BB"][[/color][color=" #DD0000"]"email"[/color][color=" #0000BB"]][/color] . [color=" #DD0000"]"' and senha='"[/color] . [color=" #000000"]$_POST[/color][color=" #0000BB"][[/color][color=" #DD0000"]"senha"[/color][color=" #0000BB"]][/color] . [color=" #DD0000"]"'"[/color][color=" #0000BB"])[/color];
[color=" #000000"]$ver[/color] = mysqli_num_rows[color=" #0000BB"]([/color][color=" #000000"]$log[/color][color=" #0000BB"])[/color];
[color=" #000000"]$row[/color] = mysqli_fetch_row[color=" #0000BB"]([/color][color=" #000000"]$log[/color][color=" #0000BB"])[/color];
[color=" #000000"]$nomeAtendente[/color] = [color=" #000000"]$row[/color][color=" #0000BB"][[/color][color=" #DD0000"]0[/color][color=" #0000BB"]][/color];
[color=" #000000"]$email[/color] = [color=" #000000"]$row[/color][color=" #0000BB"][[/color][color=" #DD0000"]1[/color][color=" #0000BB"]][/color];
[color=" #000000"]$senhaChat[/color] = [color=" #000000"]$row[/color][color=" #0000BB"][[/color][color=" #DD0000"]2[/color][color=" #0000BB"]][/color];
[color=" #FF8000"]/* ///////////////////////
        definido aqui o nome
        de atendente e a senha
        essa parte pode ser alterada para
        buscar os dados em uma tabela..
///////////////////////////// */[/color]
[color=" #FF8000"]//exibe o formulário de login caso for verdade.[/color]
[color=" #007700"]if[/color][color=" #0000BB"]([/color]![color=" #0000BB"]isset[/color][color=" #0000BB"]([/color][color=" #000000"]$_POST[/color][color=" #0000BB"][[/color][color=" #DD0000"]"senha"[/color][color=" #0000BB"]][/color][color=" #0000BB"])[/color] && ![color=" #0000BB"]isset[/color][color=" #0000BB"]([/color][color=" #000000"]$_POST[/color][color=" #0000BB"][[/color][color=" #DD0000"]"email"[/color][color=" #0000BB"]][/color][color=" #0000BB"])[/color] || [color=" #000000"]$_POST[/color][color=" #0000BB"][[/color][color=" #DD0000"]"senha"[/color][color=" #0000BB"]][/color]!=[color=" #000000"]$senhaChat[/color] && [color=" #000000"]$_POST[/color][color=" #0000BB"][[/color][color=" #DD0000"]"email"[/color][color=" #0000BB"]][/color]!=[color=" #000000"]$email[/color][color=" #0000BB"])[/color][color=" #0000BB"]{[/color]
[color=" #DD0000 fontweight bold"]?>[/color]
<html>
        <body>
                <h2 align=[color=" #DD0000"]"center"[/color]>Login [color=" #007700"]do[/color] atendente</h2>
                <form action=[color=" #DD0000"]"indexAtendente.php"[/color] name=[color=" #DD0000"]"login"[/color] method=[color=" #DD0000"]"post"[/color]>
                <div align=[color=" #DD0000"]"center"[/color]>
                        <p>
                                E-[color=" #0000BB"]mail[/color]: <input type=[color=" #DD0000"]"text"[/color] name=[color=" #DD0000"]"email"[/color] id=[color=" #DD0000"]"email"[/color]
                                size=[color=" #DD0000"]"15"[/color]/><br /><br />
                                Senha: <input type=[color=" #DD0000"]"password"[/color] name=[color=" #DD0000"]"senha"[/color] id=[color=" #DD0000"]"senha"[/color]
                                size=[color=" #DD0000"]"15"[/color] maxlength=[color=" #DD0000"]"15"[/color] />
                        </p>
                        <p>
                                <input name=[color=" #DD0000"]"iniciar"[/color] type=[color=" #DD0000"]"submit"[/color] id=[color=" #DD0000"]"Iniciar"[/color] value=[color=" #DD0000"]"Logar"[/color] />
                        </p>
                </div>
                </form>
        </body>
</html>
[color=" #DD0000 fontweight bold"]<?php[/color]
[color=" #0000BB"]}[/color][color=" #FF8000"]//fehca o if[/color]
[color=" #007700"]else[/color][color=" #0000BB"]{[/color]
        [color=" #0000BB"]ob_start[/color][color=" #0000BB"]([/color][color=" #0000BB"])[/color];
        [color=" #FF8000"]//inicia o chat[/color]
        [color=" #007700"]include[/color] [color=" #DD0000"]"conecta.php"[/color];
        [color=" #000000"]$res[/color] = mysqli_query[color=" #0000BB"]([/color][color=" #000000"]$con[/color], [color=" #DD0000"]"insert into atendimento(nome,origem,msg) values('$nomeAtendente','A','')"[/color][color=" #0000BB"])[/color];
        [color=" #0000BB"]setcookie[/color][color=" #0000BB"]([/color][color=" #DD0000"]"nomeAtendente"[/color], [color=" #000000"]$nomeAtendente[/color][color=" #0000BB"])[/color];
[color=" #DD0000 fontweight bold"]?>[/color]
<!DOCTYPE html [color=" #007700"]PUBLIC[/color] [color=" #DD0000"]"-//W3C//DTD XHTML 1.0 Transitional//EN"[/color] [color=" #DD0000"]"http://www.w3.org/TR...ansitional.dtd"[/color]>
<html xmlns=[color=" #DD0000"]"http://www.w3.org/1999/xhtml"[/color]>
<head>
<meta http-equiv=[color=" #DD0000"]"Content-Type"[/color] content=[color=" #DD0000"]"text/html; charset=iso-8859-1"[/color] />
<title>Chat [color=" #007700"]do[/color] atendente</title>
<script src=[color=" #DD0000"]"open.js"[/color]></script>
<script src=[color=" #DD0000"]"chat2.js"[/color]></script>
</head>
<body>
        <h2 align=[color=" #DD0000"]"center"[/color]>Atendimento via Chat</h2>
        <table width=[color=" #DD0000"]"100%"[/color] border=[color=" #DD0000"]"0"[/color] cellpadding=[color=" #DD0000"]"0"[/color] cellspacing=[color=" #DD0000"]"3"[/color]>
                <tr>
                        <td bgcolor=[color=" #DD0000"]"#FFFF99"[/color]>
                                <div id=[color=" #DD0000"]"texto"[/color] style=[color=" #DD0000"]"width:100%; height:300px; overflow:auto"[/color]></div>
                                <div align=center id=sound></div>
                        </td>
                </tr>
                <tr>
                        <td>
                                <form action=[color=" #DD0000"]"java script:void%200"[/color] name=[color=" #DD0000"]"formAjax"[/color] onSubmit=[color=" #DD0000"]"EnviaMsg(this.msg.value); return false"[/color]>
                                Sua Mensagem:
                                <input type=[color=" #DD0000"]"text"[/color] name=[color=" #DD0000"]"msg"[/color] id=[color=" #DD0000"]"msg"[/color] size=[color=" #DD0000"]"50"[/color] maxlength=[color=" #DD0000"]"150"[/color] />
                                <input type=[color=" #DD0000"]"submit"[/color] name=[color=" #DD0000"]"Submit"[/color] value=[color=" #DD0000"]"Enviar"[/color] />
                                </form>
                        </td>
                </tr>
        </table>
        <p align=[color=" #DD0000"]"right"[/color]>
        <a href=[color=" #DD0000"]"java script:NovoAtendimento();"[/color]>Finalizar Atendimento atual</a>
        &nbsp;|
        &nbsp;|
        &nbsp;
        <a href=[color=" #DD0000"]"logout.php"[/color]>Encerrar Chat[color=" #0000BB"]([/color]Sair[color=" #0000BB"])[/color]</a>
        </p>
</body>
</html>
[color=" #DD0000 fontweight bold"]<?php[/color]
        [color=" #0000BB"]}[/color][color=" #FF8000"]//fecha else[/color]
[color=" #DD0000 fontweight bold"]?>[/color]
</div><!--php2--></div><!--php3-->

excluirMsg2.php
<?php
ob_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 obj

var 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 :)/>

Editado por Mário Monteiro, 10 novembro 2012 - 22:02 .

  • 7

#2 programador php

programador php

    WebDeveloper

  • Membros
  • 892 posts

Postado 18 setembro 2007 - 11:46

cara posso usar isso publicamente!!

abraço
  • 0

#3 RomanMG

RomanMG
  • Membros
  • 643 posts

Postado 18 setembro 2007 - 13:08

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 .. :assobiando:/>
Abraço!!

Editado por Mário Monteiro, 10 novembro 2012 - 22:02 .

  • 0

#4 Bruno Capella

Bruno Capella
  • Membros
  • 959 posts

Postado 18 setembro 2007 - 15:27

Po gente.
ta no laboratorio e pra quem quiser usar mesmo.

estejam avontade.


usem e abusem do script
  • 0

#5 Mutar

Mutar
  • Membros
  • 7 posts

Postado 22 setembro 2007 - 06:40

:assobiando:/>

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 :thumbsup:/>

Editado por Mário Monteiro, 10 novembro 2012 - 22:02 .

  • 0

#6 Bruno Capella

Bruno Capella
  • Membros
  • 959 posts

Postado 23 setembro 2007 - 19:08

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 ae
se possivel colocar o erro. que está dando.
  • 0

#7 RomanMG

RomanMG
  • Membros
  • 643 posts

Postado 24 setembro 2007 - 08:55

e acima tem um arquivo zip que tem o chat completo.

..
Aonde ta isso velho?
Abraço!
  • 0

#8 Bruno Capella

Bruno Capella
  • Membros
  • 959 posts

Postado 24 setembro 2007 - 10:18

po tava la.
kakkaa.
deve ter saido na hora de inserir e nao percebi.

mais vou colocar mais tarde denovo.

:)/>

Editado por Mário Monteiro, 10 novembro 2012 - 22:01 .

  • 0

#9 ezil

ezil
  • Membros
  • 1 posts

Postado 25 setembro 2007 - 16:11

O Bruno coloca o zip ai pra nos com o sistema completo

valeu :joia:/>

Editado por Mário Monteiro, 10 novembro 2012 - 22:01 .

  • 0

#10 Mutar

Mutar
  • Membros
  • 7 posts

Postado 26 setembro 2007 - 20:39

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 8

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\Arquivos de programas\VertrigoServ\www\atende\indexAtendente.PHP on line 9

Warning: 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

  • 0

#11 gusgoncalves

gusgoncalves
  • Membros
  • 1 posts

Postado 04 outubro 2007 - 10:56

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
  • 0

#12 Bruno Capella

Bruno Capella
  • Membros
  • 959 posts

Postado 04 outubro 2007 - 19:26

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/m.../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

[php]
$sql = mysql_query("com,ando sql", $con);

beleza..

qualquer duvida posta ae
  • 0

#13 programador php

programador php

    WebDeveloper

  • Membros
  • 892 posts

Postado 09 outubro 2007 - 17:52

bruno

ainda faltam algumas paginas, como por exemplo a excluimsg2.php

logout.php


se possivel me manda o arquivo que eu hospedo e deixo o link para a galera!!



me manda uma MP


mas ficou show o sistema

abraço
  • 0

#14 Bruno Capella

Bruno Capella
  • Membros
  • 959 posts

Postado 11 outubro 2007 - 00:37

po foi mal não responde antes
mais os arquivos que estavam faltando ja os coloquei no script.

vlww.
  • 0

#15 Danilo Andrade

Danilo Andrade
  • Membros
  • 5 posts

Postado 18 outubro 2007 - 13:39

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
  • 0

#16 Bruno Capella

Bruno Capella
  • Membros
  • 959 posts

Postado 18 outubro 2007 - 13:53

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/>

Editado por Mário Monteiro, 10 novembro 2012 - 22:01 .

  • 0

#17 Guilherme Medeiros

Guilherme Medeiros
  • Membros
  • 55 posts

Postado 24 outubro 2007 - 15:03

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.co...5/chat.rar.html

:)/>

t+

Editado por Mário Monteiro, 10 novembro 2012 - 22:00 .

  • 0

#18 Bruno Capella

Bruno Capella
  • Membros
  • 959 posts

Postado 24 outubro 2007 - 20:11

beleza. guilherme.

Conversando com outros amigos ja tive varias ideias.
mais to totalmente sem tempo. pra mexer nisso.
toda ajuda. é bem vinda:D
  • 0

#19 Gutinho

Gutinho
  • Membros
  • 44 posts

Postado 28 outubro 2007 - 21:13

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.co...5/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 :thumbsup:/> ) 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!

Editado por Mário Monteiro, 10 novembro 2012 - 22:00 .

  • 0

#20 Gutinho

Gutinho
  • Membros
  • 44 posts

Postado 28 outubro 2007 - 21:19

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.co...5/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 :thumbsup:/> ) 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!

Editado por Mário Monteiro, 10 novembro 2012 - 22:00 .

  • 0




Publicidade

/ins>