+6

Um Simples Chat sem Banco de Dados

criado por Rodrigo Romano Moreira em 13/04/2002 6:53pm
Em form.php além de enviar as mensagens e deve constar todos os outros usuários presentes no chat. Os usuários do chat estão contidos no arquivo log.txt (daqui a pouco eu explico como criá-lo). Bem veja o nosso formulário de envio de mensagens:

<html>
<head>
<meta http-equiv="Pragma" content="no-cache">
</head>
<body>
<table width="100%" cellpadding="0" cellspacing="0" border="1" bordercolor="#000000">
 
<tr>
       
<td align="center">
         
<form action="lform.php" method="post" name="frmMsg">
               
<table width="600" border="0">
                 
<tr>
         
<td>
               
<?php echo $nome; ?>
               

           
<p>
                                       
<select size="1" name="dest">
                               
<option selected>TODOS</option>
 
<?php
$arq
="log.txt";
$fd
= fopen ($arq, "r");
$i
=0;
while (!feof ($fd)) {
    $buffer
= fgets($fd, 4096);
    $pieces
= explode("|",$buffer);
    $reg
[$i] =$pieces[0];
    $i
++;
}
fclose
($fd);
for($k=0;$k < ($i-1);$k++){
    $comp
=$reg[$k];
   
for($j=$k+1;$j < $i;$j++){
       
if($comp==$reg[$j]){$reg[$j]="";}
   
}
}
for($s=0;$s < $i;$s++){
    $x
=$reg[$s];
   
if ($x !="") {
        echo
"<option value=\"$x\">$x</option>";
   
}
}
?>
                         
</select><input size="44" name="msg"><input type="submit" value="Enviar" name="Enviar">
           
</p>
 
</td>
       
</tr>
 
</table>
</form>
</td></tr>
</table>
</body>
</html>

No arquivo log.txt contem muitos registros repetidos. Usando um método de ordenação os registros repetidos são retirados.

Bem agora nossa mensagem será processada em lform.php, segue o código :

<?php
session_start
();

$mesg
="<p>$nome fala para $dest : $msg</p>\n\n";

$arq
="reg.txt";
$i
=0;
$fd
= fopen ($arq, "r");
while (!feof ($fd)) {
    $buffer
= fgets($fd, 500);
    $reg
[$i] =$buffer;
    $i
++;
}
fclose
($fd);
$fp_a
=fopen($arq,"w");

for($k=0;$k < $i;$k++){
    fputs
($fp_a,$reg[$k]);
}

fputs
($fp_a,$mesg);
fclose
($fp_a);

echo
"<html><head>";
echo
"<meta http-equiv=\"Refresh\" ";
echo
"content=\"0;url=form.php\">";
echo
"</head></html>";
?>

A variável $nome (variável global ) e as variáveis $dest e $msg (variáveis do formulário) são concatenadas na variável $mesg. Ela vai ser adicionada ao arquivo reg.txt, de modo que a mensagem mais recente seja a última.

As quatro últimas linhas são para o retorno para o formulário do chat.

Nota : a única forma de atualizar a lista de usuários é enviando uma mensagem.

Comentários:

Mostrando 1 - 10 de 27 comentários
Alex disse:
oha o erro que esta dando quando coloco o apelido


Fatal error: Call to undefined function session_register() in /home/u145043887/public_html/entra.php on line 3


pq?????
17/09/2013 10:58pm (~11 anos atrás)

Daniel disse:
Estou tendo problemas para inserir uma senha de Admin no Chat, dá o seguinte erro: '[var..now]&fase=[var._GET.fase]' e a tela seguinte da como Não Encontrada. Alguem pode me ajudar a arrumar.

Abraço
Daniel
28/07/2010 5:19pm (~14 anos atrás)

Moizes disse:
Você fala que logo a frente vai falar sobre o log.txt e não fala =(.

Resultado, nã funcionou aqui.
03/06/2009 4:56pm (~16 anos atrás)

No ler.php as mensagens são carregadas de cima para baixo.. então as ultimas mensagens enviadas nunca são vistas ok!
eu adicionei alguns codigos de html amais q podem contornar isso:--
<?php
session_start();
include ("./user.php");
?>
<html><head><meta http-equiv="Refresh" content="10;URL=ler.php#FIM"></head><body>
<?
$arq="reg.txt";
$fd = fopen ($arq, "r");
while (!feof ($fd)) {
$buffer = fgets($fd,4096);
echo $buffer;
}
fclose ($fd);
?><a name="FIM"></a>
</body>
</html>
--
o #FIM fará q a janela sempre abra no final de todo o conteudo já digitado..
No mais muito bom o código..
Valeu

[s]
05/03/2004 8:26am (~21 anos atrás)

Estou tendo problemas com a versão Mysql,na hora que funcionar,eu envio o tutorial.
26/04/2002 5:36pm (~23 anos atrás)

Evandro Silva disse:
Gostei muito do chat, mas estou ansioso para ver a versão com MySQL.
25/04/2002 11:46pm (~23 anos atrás)

Quarta ou quinta ,lanço o tutorial e o chat em mysql.
23/04/2002 7:16am (~23 anos atrás)

Só seu servidor usar PHP.
22/04/2002 12:34pm (~23 anos atrás)

Todas as funções estão prontas ,exceto a funções lê as mensagens.
Estou tentanto criar uma coisa com iframe e javascript,mas ainda chego lá.
20/04/2002 5:12pm (~23 anos atrás)

Está em desenvolvimento,mas aqui estou apanhando.
19/04/2002 11:33pm (~23 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)