frnd Postado Janeiro 22, 2008 Denunciar Share Postado Janeiro 22, 2008 (editado) 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?[]so 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 Janeiro 22, 2008 por ESerra Inserindo as tags CODEBOX Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 frnd Postado Janeiro 22, 2008 Autor Denunciar Share Postado Janeiro 22, 2008 Estava pensando em resolver isso utilizando o unset. Mas como eu colocaria esse método no voltar ou no fechar do browser? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 22, 2008 Denunciar Share Postado Janeiro 22, 2008 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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 frnd Postado Janeiro 22, 2008 Autor Denunciar Share Postado Janeiro 22, 2008 Funcionaria se o usuário voltasse ou fechasse o browser? Fiz assim<body onUnLoad="window.open("fechar.php");">mas não aconteceu nada...[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Janeiro 22, 2008 Denunciar Share Postado Janeiro 22, 2008 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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
frnd
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
Editado por ESerraInserindo as tags CODEBOX
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.