Ir para conteúdo

POWERED BY:

Arquivado

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

Akiracovers

Chat em Php - Simples

Recommended Posts

Bom galera....

 

Continuando a minhas estréia aqui, vou continuar as aulas de scripts em php, vejo que a galera gostou do Relatório de Segurança no Codigo Fonte...

 

Mas bem, desta vez vou ensinar a fazer um simples... Bate Papo

 

Não me preocupei em fazer uma bela interface e talz, pois, estou aqui msm para mostrar como funciona a gravação dos arquivos...

 

Utilizei nesse sistema de Chat as funções F (fopen, fread, fclose),

é meio estranho utiliza-las mas depois você acustuma...

 

O Bate Papo (CHAT) funciona em dois arquivos, à index e o arquivo gravar.php, o arquivo gravar.php eh o que faz todo o trabalho, mas ele naum tem nada de +...

 

Mãos a Obra...

 

Arquivo index.htm

<html><head>  <title>Bate Papo</title></head><body><form name="Gravar" action="gravar.php" method="post" target="chat"><table><tr> <td>Nick: <input type="text" name="nick"></input></td></tr><tr> <td>Texto: <input type="text" name="texto"></input><input type="submit" value="Enviar"></input></td></tr><tr> <td><iframe name="chat" src="chat.txt" width="468" height="300">Utilize um navegador mais recente!</iframe></td></tr></table></body></html>

Bem vocês devem ter percebido que fiz um simples forumulario HTML, a não ser um simples jogo de campos, veja detalhadamente:

 

<form name="Gravar" action="gravar.php" method="post" target="chat">

 

1º - se especifica ao form o nome dele que no caso é Gravar

2º - define o arquivo que fará a ação de gravar, no caso gravar.php

3º - definimos o metodo de envio do formulario, se você usar get pegará o conteudo do gravar.php, mas no nosso caso usaremos post, para enviar o conteúdo desse form ao gravar.php

4º - target="chat" define que ele executará a ação no iframe de nome chat, isso como alvo do form.

 

<input type="text" name="nick">

define que será um campo de texto e seu nome eh "nick"

 

<input type="text" name=""texto>

define que será um campo de texto e seu nome eh "texto"

 

e logo apos um <input type=submit> para enviar o formulario

 

......

 

Bem até aqui nem um segredo, mas é importante ressaltar todas as partes do sistema, o mais importante de tudo eh o nome dos campos, pois teremos de especificar logo a frente o campo a ser pego o conteúdo, e para isso usaremos o nome dele

 

Agora o .php que faz o milagre

 

Arquivo gravar.php

<?php// Pra escrever no arquivo usamos o seguinte codigo:$nick = $_POST['nick']; // Pega o que está escrito no campo de nome nick \\$texto = $_POST['texto']; // Pega o que está escrito no campo de nome texto \\$abre = fopen("chat.txt", "a"); // Abre o arquivo chat.txt com a opção a (abre para leitura e escrita) \\if($abre) {fwrite($abre,"$nick : $texto \n");// Se conseguir abrir o arquivo ele escreve o conteudo com fwrite \\}fclose($abre);// Fecha o arquivo \\?><meta http-equiv="refresh" content="5; url=chat.txt"> <!-- Redireciona para o arquivo chat.txt //-->

Bem é isso um sistema bem simples, não precisa nem de um banco de dados... mas naum se eskeça se for utiliza-lo em um servidor web, de CHMOD 666 no arquivo chat.txt ^^ :) :) :) :D

 

Bom no proximo post vou ensinar a colocar smilies no chat!!!

 

 

Falowe......

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito bom caramas tpou tenta nao usar a palavra chat nos forms auhauatava lendo uam pesquisa num site de TI e muiats empresas barram a palavra chat :P inclusive odne ue trabalho por causa do proxy, vou usar ele so vo substituir a plavra chat por suporte pois vou usalo para suporte onlinevalew cara

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito showsoh na boa eu tenho que atualizar a page depois que posto nehseguinte da pa fazer tpquando o cara da um submit ou seja enva o texto apos 2 segundos ele da um refresh na page?pq senau me utenho que fica atualizando e o os outros tb masm uito show cara parabens

Compartilhar este post


Link para o post
Compartilhar em outros sites

AKIRAnão estou muito familiarizado com o <iframes> ... tem como fazer com que a janela acrescente um retorno do carro automaticamente... estou testando o script, que está funcionando bem quando o texto é curto, mas quando o texto é longo, como é normal em um suporte online, a linha não retorna, mas faz a tela rolar... fica feio isto... tem como inserir algum atributo no <iframes> para fazer isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rutger,

 

Para quebrar a linha, basta adicionar à tag <iframe> o seguinte código: scrolling="no"... portanto, o código do iframe fica assim:

 

<iframe name="chat" src="chat.txt" width="468" height="300" scrolling="no">Utilize um navegador mais recente!</iframe>

Compartilhar este post


Link para o post
Compartilhar em outros sites

vdepizzoljá tentei isto, mas não consegui... PIOR... fui fazer uma pesquisa na w3c e descobri que esta opção não existe... creio que precisarei manipular a variaável $texto que gera o arquivo texto gravado de forma a obter um texto ORIGFINALMENTE formatado... só assim o texto apresentado as linhas com quebras... talvez ate transforme o arquivo txt em html, para poder inserir TAGs de controle como <BR>... paciência... obrigado pela tentativa... a proposito, da forma que você colocou, as barras de rolagem somem, mas o texto continua sem quebra... como uma unica linha...pena, né?!Rutger

Compartilhar este post


Link para o post
Compartilhar em outros sites

claro que tem de criar o CHAT.TXT mas o problema é que se tiver alguma sentença muito longa, ele não quebra a linha e precisa rolar para ler...não tem jeito assim... tem de elaborar mais...obrigado a todos que discutiram as minhas questoies...Rutger!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rutger,

 

se você fizer uma função onde incluísse o código

Include "chat.txt";
E, criasse uma variável onde seu valor fosse o nome da função, e depois colocaria a váriavel que você criou para mostrar na página... Então, o texto txt iria para o modo html e teria formatação...

 

 

O interessante também seria se você fizesse por exemplo a página chat.php onde ficaria essa váriavel e a function... assim o texto formatado ficaria dentro do iframe no index.htm...

 

-------------

 

Eu testei esse chat e percebi que todas as mensagens que escrevo nunca somem... não haveria algum jeito destas sumirem?

 

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem vcs estão pedindo as seguintes coisas:Rolagem automaticaAuto RefreshGravação do Chat.txt de baixo para cimabem vamos láa rolagem automatica é soh voc~es procurarem no codigo fonte do bate-papo da uol q temquanto ao auto refresh eh soh usar esse código<iframe name="chat" src="chat.php" width="468" height="300" scrolling="no">Utilize um navegador mais recente!</iframe>no arquivo chat.php coloque assim<?phpinclude(chat.txt);?>e depois um meta refreshe quanto a gravação modifique na opção fopen ao ives de "a" para "w+" pronto..ateh a proxima

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora vamos ver como fica tudo:

 

Arquivo INDEX.HTM /////////////////////////////

 

PHP [/tr][tr]<html>

 

<head>

<title>Chat em PHP - Simples</title>

</head>

 

<body>

 

<form name="Gravar" action="gravar.php" method="post" target="chat">

 

<table>

 

<tr>

<td>Nick: <input type="text" name="nick"></input></td>

</tr>

<tr>

<td>Texto: <input type="text" name="texto"></input><input type="submit" value="Enviar"></input></td>

</tr>

<tr>

<td><iframe name="chat" src="chat.php" width="468" height="300">Utilize um navegador mais recente!</iframe></td>

</tr>

 

</table>

 

</form>

 

</body>

 

</html>

[/tr]

 

Arquivo CHAT.PHP /////////////////////////////

 

PHP [/tr][tr]<?

echo "<font face=/"Arial/" size=/"2/">";

include(chat.txt);

echo "</font>";

?>

<meta http-equiv="refresh" content="5; url=chat.php">

[/tr]

 

Arquivo GRAVAR.PHP /////////////////////////////

 

PHP [/tr][tr]<?php

// Pra escrever no arquivo usamos o seguinte codigo:

 

$nick = $_POST['nick'];

// Pega o que está escrito no campo de nome nick \\

 

$texto = $_POST['texto'];

// Pega o que está escrito no campo de nome texto \\

 

$abre = fopen("chat.txt", "w+");

// Abre o arquivo chat.txt com a opção a (abre para leitura e escrita) \\

 

if($abre) {

 

fwrite($abre,"$nick : $texto \n");

// Se conseguir abrir o arquivo ele escreve o conteudo com fwrite \\

 

}

 

fclose($abre);

// Fecha o arquivo \\

 

?>

 

<meta http-equiv="refresh" content="5; url=chat.txt">

<!-- Redireciona para o arquivo chat.txt //-->

[/tr]

 

Agora falta a rolagem automática (não achei nada do tipo) e fazer com que a mensagem suma quando você entra de novo...

 

:)

 

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Amigos,Fico feliz em saber que o meu tópico ainda está ajudando muitos usuarios... este é um chat simples como está no titulo do tópico, fica a gosto e perseverança de vocês melhora-lo.Abraços, ao Prescot, ao Walace, ao Keitaro, e a todos os outros usuarios daqui, quando eu tiver um tempo livre venho dar um help nas duvidas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que a página abra no final, uma idéia legal seria colocar uma âncora com o nome FINAL no final do CHAT.PHP e, na hora de fazer o REFRESH, colocar:

 

PHP [/tr][tr]<meta http-equiv="refresh" content="5; url=chat.php#final">[/tr]

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

para nao dar refresh tem que usar o loop while e depois o sleepmas isso seria com mysql e esse sistema nao usa mysql

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.