Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ahsc

chat

Recommended Posts

Fiz um chat em PHP ao qual somente pessoas cadastradas podem ter acesso. Fiz a base de dados com cadastro de usuários e nesta base de dados, há dois campos que indicam se o usuário está on-line e qual setor ele está conversando. Pelo script que fiz, após ser efetuado o login e senha e ser escolhido o setor em que se quer conversar, a base de dados é atualizada, como mencionado há pouco, e pelo script ainda, só podem conversar simultâneamente duas pessoas - Atendente e Usuário. Até aí nenhum problema. Neste chat ainda, há o botão de envia e o botão de sair, ao qual há um script que atualiza a base de dados para "0", ou seja, usuário offline e setor disponível, além de enviar todo o conteúdo da conversa para um e-mail específico.O problema está se o usuário fechar o chat pelo botão de fechar "X" que existe no browser. Não há atualização da base de dados e por conseqüência, o usuário permanece com estatus de "online" e também fica em aberto o setor em que se estar conversando. Então, gostaria de saber se há alguma maneira de que quando o usuário clicar no botão fechar do browser a base de dados seja atualizada para o estatus de "offline" ou se há alguma maneira de "travar" o botão de fechar da janela popup do chat?Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara num sei se vai te ajudar mais dê uma olhada e vê se consegue adaptar..

 

tirei dê um site

 

nem sei se vai servir mais dá uma olhada

 

window.onbeforeunload=FechaSessao;document.onkeydown=Verificar;var ifMySelClosed=false; //variavel que define se ele mesmo que esta sendo fechado//é IE?var IE = document.all?true:false;if (!IE) document.captureEvents(Event.MOUSEMOVE)document.onmousemove = getMouseXY;var tempY = 0;function getMouseXY(e) {if (IE) { // grab the x-y pos.s if browser is IEtempY = event.clientY + document.body.scrollTop;}else { // grab the x-y pos.s if browser is NStempY = e.pageY;}if (tempY < 0){tempY = 0;}//document.getElementById('MouseY').value=tempY;return true;}function FechaSessao(){var bool = false;var top=self.screenTop;//controle de fechar com o botao direito do mouse na barra de tarefas (quando está minimizado)if ((top <= -30000) && (top >= -32000)){bool=true;}//controle de fechar com o botao direito do mouse na barra de tarefasif (((tempY <= 100) || ((tempY >=750) && (tempY <= 800)))){bool=true;}if(bool==true){//se não for ele que clicou no sair entao nao entra.if(!ifMySelClosed){window.location.href="../logout.php";alert("Para sua segurança sempre clique em sair!");}}}function fnConfirmFechar(){if(confirm('Deseja realmente sair do sistema, SISCSV Portal 2.0?')){ifMySelClosed=true;window.location.href="../logout.php";window.close();}elsereturn false;}function Verificar(){var tecla=window.event.keyCode; //tecla normalvar alt=window.event.altKey; // Para Controle da Tecla ALTvar ctrl=window.event.ctrlKey; // Para Controle da Tecla CTRLif (alt && tecla==115) // Evita feclar via Teclado{if(confirm('Deseja realmente sair do sistema, SISCSV Portal 2.0?')){window.location.href="../logout.aspx";alert("Para sua segurança sempre clique em sair!");window.close();}else{event.keyCode=116;event.returnValue=false;}}if (ctrl && tecla==78) {alert("CTRL+N bloqueado");event.keyCode=0; event.returnValue=false;} // Evita Nova Hanela}

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara num sei se vai te ajudar mais dê uma olhada e vê se consegue adaptar..tirei dê um site nem sei se vai servir mais dá uma olhada

window.onbeforeunload=FechaSessao;document.onkeydown=Verificar;var ifMySelClosed=false; //variavel que define se ele mesmo que esta sendo fechado//é IE?var IE = document.all?true:false;if (!IE) document.captureEvents(Event.MOUSEMOVE)document.onmousemove = getMouseXY;var tempY = 0;function getMouseXY(e) {if (IE) { // grab the x-y pos.s if browser is IEtempY = event.clientY + document.body.scrollTop;}else { // grab the x-y pos.s if browser is NStempY = e.pageY;}if (tempY < 0){tempY = 0;}//document.getElementById('MouseY').value=tempY;return true;}function FechaSessao(){var bool = false;var top=self.screenTop;//controle de fechar com o botao direito do mouse na barra de tarefas (quando está minimizado)if ((top <= -30000) && (top >= -32000)){bool=true;}//controle de fechar com o botao direito do mouse na barra de tarefasif (((tempY <= 100) || ((tempY >=750) && (tempY <= 800)))){bool=true;}if(bool==true){//se não for ele que clicou no sair entao nao entra.if(!ifMySelClosed){window.location.href="../logout.php";alert("Para sua segurança sempre clique em sair!");}}}function fnConfirmFechar(){if(confirm('Deseja realmente sair do sistema, SISCSV Portal 2.0?')){ifMySelClosed=true;window.location.href="../logout.php";window.close();}elsereturn false;}function Verificar(){var tecla=window.event.keyCode; //tecla normalvar alt=window.event.altKey; // Para Controle da Tecla ALTvar ctrl=window.event.ctrlKey; // Para Controle da Tecla CTRLif (alt && tecla==115) // Evita feclar via Teclado{if(confirm('Deseja realmente sair do sistema, SISCSV Portal 2.0?')){window.location.href="../logout.aspx";alert("Para sua segurança sempre clique em sair!");window.close();}else{event.keyCode=116;event.returnValue=false;}}if (ctrl && tecla==78) {alert("CTRL+N bloqueado");event.keyCode=0; event.returnValue=false;} // Evita Nova Hanela}
Putz cara, valeu. Funcionou direitinhoBrigado mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.