Ir para conteúdo
Fórum Script Brasil
  • 0

chat em php


frnd

Pergunta

Seguinte, utilizo um chat com php, sem banco de dados com utilização de .txt.

Tem um problema (problema de doer a cabeça). Caso o usuário clica no botão voltar do browser ou sair, o nick fica no chat.

Teria como ao efetuar essas duas ações para que saia? Ou criar algo de inatividade?

[]s

o código do principal.php

<html>
<head>
<title>Batepapo Gohnet</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
//-->
</script>
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<?
if(isset($_GET["sair"])){
$cor=$_GET["cor_apelido"];
$chat_ant=file("bd/chat.txt");
$n_chat=count($chat_ant);
$nn_chat=0;
$ant_chat="";
if($chat_ant<>NULL){
while($n_chat > $nn_chat){
$ant_chat.=$chat_ant[$nn_chat];
$nn_chat++;
}
}
$abrir=fopen("bd/chat.txt",'w+');
$msg_nv='<font color="'.$cor.'"><b>'.$_GET["apelido"]."</b></font><i> acabou de sair</i>;".$ant_chat;
fwrite($abrir,$msg_nv);
fclose($abrir);

$apelido1=$_GET["apelido"];
$apelido1=strip_tags($apelido1);
$usu_bd=file("bd/usu.txt");
$usuarios1=NULL;
if($usu_bd<>NULL){
$usuarios1=$usu_bd[0];
}
$usu_arr=explode(";",$usuarios1);
$n_usua=count($usu_arr);
$nn_usua=0;
$usu_ago=NULL;
$chave_apel=array_search($apelido1,$usu_arr);
while($n_usua > $nn_usua){
if($nn_usua <> $chave_apel){
$usu_ago.=";".$usu_arr[$nn_usua];
}
$nn_usua++;
}
$usu_ago2=substr($usu_ago, 1);
$abrir4=fopen("bd/usu.txt",'w+');
fwrite($abrir4,$usu_ago2);
fclose($abrir4);

?> <body onLoad="MM_goToURL('self','index.php');return document.MM_returnValue"> <?
}
if(isset($_POST["mensagem"])){
$cor=$_GET["cor_apelido"];
$msg=$_POST["mensagem"];
$fala1=$_POST["fala"];
$para1=$_POST["para"];
if($msg<>NULL){
$chat_ant=file("bd/chat.txt");
$n_chat=count($chat_ant);
$nn_chat=0;
$ant_chat="";
if($chat_ant<>NULL){
while($n_chat > $nn_chat){
$ant_chat.=$chat_ant[$nn_chat];
$nn_chat++;
}
}
$abrir=fopen("bd/chat.txt",'w+');
$msg_nv='<font color="'.$cor.'"><b>'.$_GET["apelido"]."</b></font><i> ".$fala1." </i><b>".$para1."</b> - ".strip_tags($msg).";".$ant_chat;
fwrite($abrir,$msg_nv);
fclose($abrir);
$data_atu=getdate();
$vazio2=$data_atu["mday"].";".$data_atu["mon"].";".$data_atu["year"].";".$data_atu["hours"].";".$data_atu["minutes"];
$abrir2=fopen("bd/ultima.txt",'w+');
fwrite($abrir2,$vazio2);
fclose($abrir2);
}
}


if(isset($_GET["apelido"])){
$apelido1=$_GET["apelido"];
$usu_bd=file("bd/usu.txt");
$usuarios1=NULL;
if($usu_bd<>NULL){
$usuarios1=$usu_bd[0];
}
$usu_arr=explode(";",$usuarios1);
$chave=array_search($apelido1,$usu_arr);
if($chave <> NULL){
?>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="2" valign="top"> <IFRAME frameBorder=0 scrollbar="NO"
height="100%" width="100%" name=centro src="chat.php#finalchat"
></IFRAME></td>
</tr>
<tr>
<td width="70" height="50" bgcolor="#990000"><form name="form1" method="get" action="<? $_SERVER["PHP_SELF"] ?>">
<div align="center">
<input name="sair" type="submit" id="sair" value="sair">
<input name="apelido" type="hidden" id="apelido" value="<? echo $_GET["apelido"] ?>">
<input name="cor_apelido" type="hidden" id="cor_apelido" value="<? echo $_GET["cor_apelido"] ?>">
</div>
</form> </td>
<td bgcolor="#990000"><form name="form2" method="post" action="<? $_SERVER["PHP_SELF"] ?>">
<table width="700" height="75" border="0" align="center" cellpadding="0" cellspacing="5">
<tr>
<td width="17%"><select name="fala" id="fala">
<option selected>Fala para</option>
<option>Grita com</option>
<option>Flerta com</option>
<option>Xinga</option>
<option>Desculpa-se com</option>
</select></td>
<td width="41%"><select name="para" id="para">
<option selected>Todos</option>
<?
$opcoes=file("bd/usu.txt");
$n_op=count($opcoes);
$nn_op=0;
$usu2=NULL;
while($n_op > $nn_op){
$usu2.=$opcoes[$nn_op];
$nn_op++;
}
$usu3=explode(";",$usu2);
sort($usu3);
$n_usu3=count($usu3);
$nn_usu3=1;
while($n_usu3 > $nn_usu3){
?>
<option><? echo $usu3[$nn_usu3] ?></option>
<?
$nn_usu3++;
}
?>
</select></td>
<td width="42%"><div align="right"><strong><font color="#000000" size="2" face="Geneva, Arial, Helvetica, sans-serif"></font></strong></div></td>
</tr>
<tr>
<td colspan="3"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="89%"><font size="2" face="Geneva, Arial, Helvetica, sans-serif"><strong><font color="#FFFFFF">Mensagem</font></strong></font>
<font color="#FFFFFF">
<input name="mensagem" type="text" id="mensagem" size="85">
</font></td>
<td> <div align="right">
<input name="enviar" type="submit" id="enviar2" value="Enviar">
</div></td>
</tr>
</table></td>
</tr>
</table>
</form></td>
</tr>
</table>
<?
} else {
?>
<div align="center"><strong><font color="#990000" size="5" face="Geneva, Arial, Helvetica, sans-serif">Você
não está logado no Batepapo</font></strong>
<?
}} else {
?>
</div>
<div align="center"><font color="#FF0000" size="3" face="Verdana, Arial, Helvetica, sans-serif"><strong>É
necessário estar logado para participar do Batepapo</strong></font>
<? } ?>
</div>
</body>
</html>[/codebox]

Editado por ESerra
Inserindo as tags CODEBOX
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Quando você tiver que adicionar alguma informação ao tópico, use o botão EDITAR, o que você fez pode ser considerado UP o que é contra as regras do fórum...

Não sei como está estruturado o sistema, mas dependendo, você pode chamar uma janela no evento onunload que faria o serviço...

Link para o comentário
Compartilhar em outros sites

  • 0

Pela lógica o onunload é o contrário do onload, então automaticamente a gente chega a conclusão de que o onunload acontece quando o cara sai da página em que o evento foi colocado...

Só lembre-se que o window.open é interpretado como um pop-up e muitos navegadores bloqueiam pop-ups...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652,1k
×
×
  • Criar Novo...