Rick RJ 1 Denunciar post Postado Março 18, 2008 Pessoal, qual o comando que posso usar para limpar um arquivo .dat que armazena as mensagens do chat? Preciso limpar se não quando alguem acessa o chat aparece as mensagens antigas. Usei este chat: Chat Se alguem quiser ver o que acontece e so acessar Teste Agradeço a ajuda. rjrick. Compartilhar este post Link para o post Compartilhar em outros sites
Rick RJ 1 Denunciar post Postado Março 19, 2008 E ai pessoal , nem uma sugestão? Serve reza, simpatia, tutorial, trabalhos espirutais ou religiosos, to aceitando tudo. Compartilhar este post Link para o post Compartilhar em outros sites
tullius 0 Denunciar post Postado Março 19, 2008 10ª Regra É proibido o post de mensagens com o objetivo de evidenciar o tópico, tornando-o primeiro da lista de tópicos (up), tal como mensagens repetitivas e/ou que não condizem com o assunto do tópico em questão (flood). Tais mensagens serão excluídas e o usuário advertido por MP. este sistema foi desenvolvido por voce?? Você entende um pouco de php? se sim mande o codigo que exibe a tela do chat. att: Tullius Compartilhar este post Link para o post Compartilhar em outros sites
Renan Decarlo 2 Denunciar post Postado Março 19, 2008 Bom, tem várias maneiras ^_^ Uma delas é apenas deletar o arquivo, já que provavelmente o script do chat cria outro... unlink("arquivo.dat"); Outra solução seria abrir o arquivo, e escrever 'nada' por cima dele. $fp = fopen("arquivo.dat", "w"); fwrite("", $fp); fclose($fp); Compartilhar este post Link para o post Compartilhar em outros sites
Rick RJ 1 Denunciar post Postado Março 19, 2008 Tullis, se você ler direitinho vai ver que eu apenas adaptei para um site, não esquecendo e claro de dar ao autor, que disponibilizou os arquivos, o merito merecido. <script type="text/javascript" language="JavaScript"> //<![CDATA[ function clearmessage(){ document.smiletagform.message.value=document.smiletagform.message_box.value; document.smiletagform.message_box.value=""; } //]]> </script> <style type="text/css"> <!-- .Estilo1 { color: #FFFFFF; font-size: 10px; } --> </style> <table height="13" width="100%" border="0"> <tbody> <tr> <td width="66%" height="200" align="center" valign="top" bgcolor="#A11B23"><p><strong><font color="#FFFFFF" size="4" face="Verdana, Arial, Helvetica, sans-serif">Atendimento on line </font></strong></p> <p><font color="#FFFFFF"><strong><font size="4" face="Verdana, Arial, Helvetica, sans-serif">Monografias Rio</font></strong></font><br> <br /> </p> <iframe name="iframetag" marginwidth="0" marginheight="0" src="view.php" width="400" height="330">Your Browser must support IFRAME to view this page correctly</iframe> <br><br> <span class="Estilo1">Copyright © 2008 - www.monografiasrio.com.br - Todos os direitos reservados / All rights reserved.</span></td> <td width="34%" align="left" valign="top" bgcolor="#A11B23"> <form name="smiletagform" method="post" action="post.php" target="iframetag"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><font color="#FFFFFF">Para conversar, preencha o formulário abaixo e clique no enviar.</font><br> <br> </strong></font></div></td> </tr> </table> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br /> </font> <table border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td><div align="left"><font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">Seu Nome</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br /> <input type="text" name="name" maxlength="30" /> <br /> <br /> <br /> <font color="#FFFFFF">Menssagem</font><br /> <textarea name="message_box" rows="8"> </textarea> <br /> <input type="hidden" name="message" value="" /> <input type="submit" name="submit" value="Enviar" onclick="clearmessage()" /> <input type="reset" name="reset" value="limpar" /> </font></div></td> </tr> </table> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br /> </font> </form></td> </tr> </tbody> </table> </body> </html> Ta ai. Obrigado pela ajuda, rjrick. Compartilhar este post Link para o post Compartilhar em outros sites
Renan Decarlo 2 Denunciar post Postado Março 19, 2008 @/\ Esse aí é o código HTML, no caso, o tullius ta pedindo o código PHP, que está nos arquivos 'post.php' e 'view.php' pelo que eu vi. Compartilhar este post Link para o post Compartilhar em outros sites
tullius 0 Denunciar post Postado Março 19, 2008 @/\ Esse aí é o código HTML, no caso, o tullius ta pedindo o código PHP, que está nos arquivos 'post.php' e 'view.php' pelo que eu vi. justamente. att: Tullius Compartilhar este post Link para o post Compartilhar em outros sites
Rick RJ 1 Denunciar post Postado Março 19, 2008 post.php <?php /**************************************************************************** * * * Copyright © 2002 SmileTAG Development Team * * http://smiletag.netstat.org/ * * * * SmileTAG is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * SmileTAG is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * ****************************************************************************/ //get user input and remove the whitespaces $name = trim($_POST['name']); $mail_or_url = trim($_POST['mail_or_url']); $message = trim($_POST['message']); $message_box = trim($_POST['message_box']); //if the browser doesn't support javascript, $message will empty //so we have to get the message from $message_box if(!empty($message_box)) $message=$message_box; require './conf/global.conf.php'; require './include/functions.inc.php'; //make sure that user fill the name and the message,also check the length of the message if( (!empty($name)) && (!empty($message)) && (strlen($message)<$MAX_LENGTH) ){ //replace all newline with space $name = str_replace("\n"," ",$name); $message = str_replace("\n"," ",$message); $mail_or_url = str_replace("\n"," ",$mail_or_url); //replace '||' with space //cause we use '||' as delimiter when storing all data to the file $name = str_replace('||',' ',$name); $message = str_replace('||',' ',$message); $mail_or_url = str_replace('||',' ',$mail_or_url); //filter all slashes and html tags $name = htmlspecialchars(stripslashes($name)); $message = htmlspecialchars(stripslashes($message)); $mail_or_url = htmlspecialchars($mail_or_url); $hour = date ('g:i:s A'); $date = date ('F d, Y'); $ipaddress = $_SERVER["REMOTE_ADDR"]; if(strtoupper($BOARD_PROTECTION) == 'ON'){ if(host_banned($ipaddress) or nick_banned($name)){ die("Your nick or IP address is banned from this board!"); } } //concat all data before saved to file with '||' as delimiter $buffer[0] = $name.'||'.$mail_or_url.'||'.$hour.'||'.$date.'||'.$ipaddress.'||'.$message."\n"; $file = @fopen($MESSAGE_FILE,'r') or die("Could not open file $MESSAGE_FILE or permission denied"); $line = 1; flock($file,1); while( (!feof($file)) && ($line < $MAX_MESSAGE) ){ $buffer[$line] = fgets($file,4096); $line++; } flock($file,3); fclose($file); $file = @fopen($MESSAGE_FILE,'w') or die("Could not open file $MESSAGE_FILE or permission denied"); flock($file,2); for($i=0; $i<count($buffer);$i++){ fputs($file,$buffer[$i]); } flock($file,3); fclose($file); } header('Location: http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/view.php'); ?> view.php <?php /**************************************************************************** * * * Copyright © 2002 SmileTAG Development Team * * http://smiletag.netstat.org/ * * * * SmileTAG is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * SmileTAG is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * ****************************************************************************/ require './conf/global.conf.php'; require './conf/smiley.conf.php'; require './include/header.inc.php'; //prepare the IMG tag for each smiley pattern for($i=0;$i<count($PATTERN);$i++) $IMAGE_TAG[$i] = '<img alt="'.stripslashes($PATTERN[$i]).'" border="0" src="images/'.$IMAGE[$i].'" />'; $file = @fopen($MESSAGE_FILE,'r') or die("Could not open file $MESSAGE_FILE or permission denied"); $background = $MSG_BGCOLOR_1; while(!feof($file)){ flock($file,1); $buffer = fgets($file,4096); flock($file,3); if(!$buffer) break; //data[0] <= name ,data[1] <= mail_or_url ,data[2] <= hour ,data[3] <= date //data[4] <= ipaddress ,data[5] <= message $data = explode('||',$buffer); //replace all smilies pattern into their IMG tag for($i=0;$i<count($PATTERN);$i++) $data[5] = eregi_replace($PATTERN[$i],$IMAGE_TAG[$i],$data[5]); if($background == $MSG_BGCOLOR_1) $background = $MSG_BGCOLOR_2; else $background = $MSG_BGCOLOR_1; if(ereg("@",$data[1])) echo '<tr><td bgcolor="'.$background.'"><span class="name" title="'.$data[3].' - '. $data[4].'"><a href="mailto:'.$data[1].'"><span class="name">'.$data[0].'</span></a>['.$data[2].']</span><br />'.$data[5].'</td></tr>'; else{ if(substr($data[1],0,7) != 'http://') $data[1] = 'http://'.$data[1]; echo '<tr><td bgcolor="'.$background.'"><span class="name" title="'.$data[3].' - '. $data[4].'"><a target="_blank" href="'.$data[1].'/"><span class="name">'.$data[0].'</span></a>['.$data[2].']</span><br />'.$data[5].'</td></tr>'; } } fclose($file); echo '</table></body></html>'; ?> Ta ai... Obrigado pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Renan Decarlo 2 Denunciar post Postado Março 19, 2008 Bom, agora já ajudo bastante... Agora me explique quando você quer que as mensagens do chat sumam? De X em X minutos, cada hora que um novo usuário entrar... como? Edit: vou ter que sair, só volto amanha... espero que alguém te ajude ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
Rick RJ 1 Denunciar post Postado Março 19, 2008 Renam, tem que ser no inicio, o cara acessou e ja entra a tela branca. Carregou ja limpa a pagina. Valeu... Compartilhar este post Link para o post Compartilhar em outros sites
Renan Decarlo 2 Denunciar post Postado Março 19, 2008 Renan, tem que ser no inicio, o cara acessou e ja entra a tela branca. Carregou ja limpa a pagina. Valeu... Opa, desculpe a demora. Beleza, mas pode ocorrer de entrar dois usuários ao mesmo tempo, e um apagar as mensagens do outro... mas isso já fica meio complicado pra resolver, então vo fazer assim mesmo. Pode ser que dê erro, porque vou fazer usando sessions aqui. Se der erro nas sessions, provavelmente é porque alguma página está carregando um código HTML antes da página view.php, aí não sei como posso te ajudar. <?php /**************************************************************************** * * * Copyright © 2002 SmileTAG Development Team * * http://smiletag.netstat.org/ * * * * SmileTAG is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * SmileTAG is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * ****************************************************************************/ require './conf/global.conf.php'; session_name('validate'); //nome da session session_start(); //inicia a session if(!isset($_SESSION['validate'])){ //checa se a variavel ja foi setada, para ver se o arquivo ja foi deletado uma vez $_SESSION['validate'] = 1; //seta a variavel da session para checar na proxima atualizaçao de precisa deletar o arquivo das mensagens ou nao unlink($MESSAGE_FILE); // deleta o arquivo } require './conf/smiley.conf.php'; require './include/header.inc.php'; //prepare the IMG tag for each smiley pattern for($i=0;$i<count($PATTERN);$i++) $IMAGE_TAG[$i] = '<img alt="'.stripslashes($PATTERN[$i]).'" border="0" src="images/'.$IMAGE[$i].'" />'; $file = @fopen($MESSAGE_FILE,'r') or die("Could not open file $MESSAGE_FILE or permission denied"); $background = $MSG_BGCOLOR_1; while(!feof($file)){ flock($file,1); $buffer = fgets($file,4096); flock($file,3); if(!$buffer) break; //data[0] <= name ,data[1] <= mail_or_url ,data[2] <= hour ,data[3] <= date //data[4] <= ipaddress ,data[5] <= message $data = explode('||',$buffer); //replace all smilies pattern into their IMG tag for($i=0;$i<count($PATTERN);$i++) $data[5] = eregi_replace($PATTERN[$i],$IMAGE_TAG[$i],$data[5]); if($background == $MSG_BGCOLOR_1) $background = $MSG_BGCOLOR_2; else $background = $MSG_BGCOLOR_1; if(ereg("@",$data[1])) echo '<tr><td bgcolor="'.$background.'"><span class="name" title="'.$data[3].' - '. $data[4].'"><a href="mailto:'.$data[1].'"><span class="name">'.$data[0].'</span></a>['.$data[2].']</span><br />'.$data[5].'</td></tr>'; else{ if(substr($data[1],0,7) != 'http://') $data[1] = 'http://'.$data[1]; echo '<tr><td bgcolor="'.$background.'"><span class="name" title="'.$data[3].' - '. $data[4].'"><a target="_blank" href="'.$data[1].'/"><span class="name">'.$data[0].'</span></a>['.$data[2].']</span><br />'.$data[5].'</td></tr>'; } } fclose($file); echo '</table></body></html>'; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Rick RJ 1 Denunciar post Postado Março 20, 2008 Renam, não limpou, deu o seguinte erro: Warning: unlink(messages.dat) [function.unlink]: Permission denied in /home/monograf/public_html/chat/view.php on line 25 Alguma ideia? Compartilhar este post Link para o post Compartilhar em outros sites
Renan Decarlo 2 Denunciar post Postado Março 20, 2008 Renam, não limpou, deu o seguinte erro: Warning: unlink(messages.dat) [function.unlink]: Permission denied in /home/monograf/public_html/chat/view.php on line 25 Alguma ideia? Opa, tenho sim... Sabe se tem algum .htaccess controlando o acesso das páginas? Se você tiver acesso FTP ao site, tenta dar um chmod 755 ou 777 na pasta que tá o arquivo das mensagens... Ps: meu nome é com N no final, Renan e não Renam :P Compartilhar este post Link para o post Compartilhar em outros sites
Rick RJ 1 Denunciar post Postado Março 20, 2008 Renan, o que ocorreu foi o seguinte, o código deletou o arquivo messeger.dat. liberei a permissão da pasta para 777 e renviei o arquivo messages.dat. Tive que liberar a permissão do messages.dat para 777. E ficou tudo do mesmo jeito. Da uma olhada: http://www.monografiasrio.com.br/chat/index.html O que podemos fazer? Desculpe pela grafia do nome, o M fica do ladinho do N. Obrigado pela ajuda. rjrick. Compartilhar este post Link para o post Compartilhar em outros sites
Renan Decarlo 2 Denunciar post Postado Março 20, 2008 Opa, ocorreu o que eu já esperava... eu acho :mellow: O código não criou um outro arquivo de mensagem... Tente por o arquivo assim: <?php /**************************************************************************** * * * Copyright © 2002 SmileTAG Development Team * * http://smiletag.netstat.org/ * * * * SmileTAG is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * SmileTAG is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * ****************************************************************************/ require './conf/global.conf.php'; session_name('validate'); //nome da session session_start(); //inicia a session if(!isset($_SESSION['validate'])){ //checa se a variavel ja foi setada, para ver se o arquivo ja foi deletado uma vez $_SESSION['validate'] = 1; //seta a variavel da session para checar na proxima atualizaçao de precisa deletar o arquivo das mensagens ou nao unlink($MESSAGE_FILE); // deleta o arquivo $f = @fopen($MESSAGE_FILE, "x"); // cria outro arquivo fwrite($f, ""); fclose($f); } require './conf/smiley.conf.php'; require './include/header.inc.php'; //prepare the IMG tag for each smiley pattern for($i=0;$i<count($PATTERN);$i++) $IMAGE_TAG[$i] = '<img alt="'.stripslashes($PATTERN[$i]).'" border="0" src="images/'.$IMAGE[$i].'" />'; $file = @fopen($MESSAGE_FILE,'r') or die("Could not open file $MESSAGE_FILE or permission denied"); $background = $MSG_BGCOLOR_1; while(!feof($file)){ flock($file,1); $buffer = fgets($file,4096); flock($file,3); if(!$buffer) break; //data[0] <= name ,data[1] <= mail_or_url ,data[2] <= hour ,data[3] <= date //data[4] <= ipaddress ,data[5] <= message $data = explode('||',$buffer); //replace all smilies pattern into their IMG tag for($i=0;$i<count($PATTERN);$i++) $data[5] = eregi_replace($PATTERN[$i],$IMAGE_TAG[$i],$data[5]); if($background == $MSG_BGCOLOR_1) $background = $MSG_BGCOLOR_2; else $background = $MSG_BGCOLOR_1; if(ereg("@",$data[1])) echo '<tr><td bgcolor="'.$background.'"><span class="name" title="'.$data[3].' - '. $data[4].'"><a href="mailto:'.$data[1].'"><span class="name">'.$data[0].'</span></a>['.$data[2].']</span><br />'.$data[5].'</td></tr>'; else{ if(substr($data[1],0,7) != 'http://') $data[1] = 'http://'.$data[1]; echo '<tr><td bgcolor="'.$background.'"><span class="name" title="'.$data[3].' - '. $data[4].'"><a target="_blank" href="'.$data[1].'/"><span class="name">'.$data[0].'</span></a>['.$data[2].']</span><br />'.$data[5].'</td></tr>'; } } fclose($file); echo '</table></body></html>'; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Rick RJ 1 Denunciar post Postado Março 20, 2008 Renan, não criou, fiz as mudanças, reenviei o código acima e o arquivo message.dat pro servidor. Ta funcionando mas não limpa as mensagens anteriores. Da uma olhadinha. Alguma ideia do esta ocorrendo? Obrigado pela ajuda. rjrick Compartilhar este post Link para o post Compartilhar em outros sites
Renan Decarlo 2 Denunciar post Postado Março 20, 2008 Renan, não criou, fiz as mudanças, reenviei o código acima e o arquivo message.dat pro servidor. Ta funcionando mas não limpa as mensagens anteriores. Da uma olhadinha. Alguma ideia do esta ocorrendo? Obrigado pela ajuda. rjrick Opa, está funcionando... o código vai limpar as mensagens a cada hora que um novo usuário entrar... assim ele não poderá ver as mensagens do outro usuário... Você quer que ele limpe as mensagens toda hora que ele dê um refresh na página? Mas aí não daria nem tempo de você ler elas.... Compartilhar este post Link para o post Compartilhar em outros sites
Rick RJ 1 Denunciar post Postado Março 21, 2008 Renan, ta funcionando, ficou muito bom. Acho que poderia limpar a cada 15 minutos. So tenho a te agradecer a ajuda. Me da mais uma luz, tem como soar um bip quando entrar uma mensagem? Obrigado pela ajuda. rjrick Compartilhar este post Link para o post Compartilhar em outros sites
Renan Decarlo 2 Denunciar post Postado Março 21, 2008 Tem sim, mas já tenho que sair... amanha eu procuro o comando e te falo, flws. Compartilhar este post Link para o post Compartilhar em outros sites
Rick RJ 1 Denunciar post Postado Março 21, 2008 Ok. Fico no aguardo. Abraços, rjrick. Compartilhar este post Link para o post Compartilhar em outros sites