Um Simples Chat com MySQL
Demorei um pouco para escrever, mas o resultado ficou muito bom. Vamos os scripts iniciais.
Nosso primeiro script possui todas as configurações do Chat (config.php):
Para facilitar o trabalho, o próximo script(cria.php) cria todas as tabelas usadas no chat :
O script abaixo(func.php) contem todas as funcoes utilizadas:
Nosso primeiro script possui todas as configurações do Chat (config.php):
<?php $host="localhost";//Host do banco de dados $id="root"; //Identificação do usuario $senha=""; //Senha para acesso ao banco de dados $db="chat2"; //Banco de dados a ser acessado $tmesg=1;//Tempo de vida mensagem em minutos $tuser=1;//Tempo de vida do perfil do usuario em minutos $ip = getenv ("REMOTE_ADDR");//IP do usuario ?>
Para facilitar o trabalho, o próximo script(cria.php) cria todas as tabelas usadas no chat :
<?php include ("./config.php"); $conexao = mysql_connect($host,$id,$senha) or die ("Could not connect"); //Conecta ao mysql mysql_select_db($db, $conexao); //Seleciona banco de dados criado $cria1 = "CREATE TABLE mensagens (codigo INT AUTO_INCREMENT PRIMARY KEY, time INT,mensagem CHAR(250))"; $cria2 = "CREATE TABLE perfis (codigo INT AUTO_INCREMENT PRIMARY KEY, time INT,ip CHAR(20),nome CHAR(20),last INT)"; mysql_query($cria1, $conexao); mysql_query($cria2, $conexao); mysql_close($conexao); ?>
O script abaixo(func.php) contem todas as funcoes utilizadas:
<?php /* Procura um determinado valor na tabela */ function verf ($conexao,$ele,$tab,$dado) { $retval=0; $consulta="SELECT $ele FROM $tab"; $resultado = mysql_query($consulta,$conexao); while ($linha = mysql_fetch_row($resultado)) { if($linha[0] == $dado){ $retval=1; break; } } return $retval; } function retorna ($conexao,$ele1,$ele2,$tab,$dado) { $retval=0; $consulta="SELECT $ele1,$ele2 FROM $tab"; $resultado = mysql_query($consulta,$conexao); while ($linha = mysql_fetch_row($resultado)) { if($linha[0] == $dado){ $retval=$linha[1]; break; } } return $retval; } function valor ($conexao,$ip) { $consulta="SELECT ip,last FROM perfis"; $resultado = mysql_query($consulta,$conexao); while ($linha = mysql_fetch_row($resultado)) { if($linha[0] == $ip){ $retval=$linha[1]; break; } } return $retval; } ?>
Na func.php nessa parte ta dando erro
$consulta = "select $ele from $tab";
$resultado = mysql_query($consulta);
while ($linha = mysql_fetch_row($resultado)){
O erro eu reparei que esta em $tab
Tipo meu serv ta com register glabals off
Tipo de onde vem $tab e $ele(2)?
Valeu mano.
$consulta = "select $ele from $tab";
$resultado = mysql_query($consulta);
while ($linha = mysql_fetch_row($resultado)){
O erro eu reparei que esta em $tab
Tipo meu serv ta com register glabals off
Tipo de onde vem $tab e $ele(2)?
Valeu mano.
14/01/2006 9:10pm
(~19 anos atrás)
Parabems mano muito bom esse chat.
E como sempre bem esplicado.
Valeu mano!!
E como sempre bem esplicado.
Valeu mano!!
12/01/2006 10:48pm
(~19 anos atrás)
Eu digito o apelido e quando clicko em entrar ocorre este erro:
mysql_fetch_row():supplied argument is not valid MYSQL result resource in func.pho on line 7
Pq?
mysql_fetch_row():supplied argument is not valid MYSQL result resource in func.pho on line 7
Pq?
02/01/2006 6:13pm
(~19 anos atrás)
Olha só, pode me ajudar com esse erro:
Warning: mysql_connect(): Can't connect to MySQL server on '204.10.105.219' (10061) in D:\hshome\cspower\cspower.net\chat\entra.php on line 5
Could not connect
Sendo que todos os dados estão corretos, a porta do meu mysql é 3306, eu queria saber o por que desse 10061 aí!
Warning: mysql_connect(): Can't connect to MySQL server on '204.10.105.219' (10061) in D:\hshome\cspower\cspower.net\chat\entra.php on line 5
Could not connect
Sendo que todos os dados estão corretos, a porta do meu mysql é 3306, eu queria saber o por que desse 10061 aí!
01/01/2006 3:31pm
(~19 anos atrás)
Ola pessoal, gostei muito do chat mas achei muito chato o barulho do refresh de 2 em 2 segundos, acho q ia deixar um pouco cansativo para quem estivesse teclando no chat. Então acrescentei um javascript para tirar este refresh, confiram ai:
1º) Tire o refresh da página 'ler.php';
2º) O arquivo 'trata.php' ficara assim:
<?php
include ("./config.php");
include ("./func.php");
$conexao = mysql_connect($host,$id,$senha) or die ("Could not connect"); //Conecta ao mysql
mysql_select_db($db, $conexao); //Seleciona banco de dados criado
$hora=date("(H:i:s)");
$nome=retorna ($conexao,"ip","nome","perfis",$ip);
$mes="<font face=verdana size=1 color=000000>$hora</font><font face=verdana size=1 color=ff6600> $nome <font face=verdana size=1 color=000000>fala para</font> $b</font>: <font face=verdana size=1 color=000000>$e</font>";
include ("./insere.php");
echo "<html><head>";
echo "<meta HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">";
echo "<script language=JavaScript>
function DuasUrls(frame1,url1,frame2,url2) {
parent.frames(frame1).location = url1;
parent.frames(frame2).location = url2;
}
</script>";
echo "</head><body onLoad=\"javascript:DuasUrls('inferior','form.php','conteudo','ler.php')\">";
echo "</body></html>";
?>
Teste! qdo vc envia a mensagem, ele faz o refresh na página form.php e ler.php, enviando a mensagem para o chat.
Bons Estudos,
saintsanchez ::)
1º) Tire o refresh da página 'ler.php';
2º) O arquivo 'trata.php' ficara assim:
<?php
include ("./config.php");
include ("./func.php");
$conexao = mysql_connect($host,$id,$senha) or die ("Could not connect"); //Conecta ao mysql
mysql_select_db($db, $conexao); //Seleciona banco de dados criado
$hora=date("(H:i:s)");
$nome=retorna ($conexao,"ip","nome","perfis",$ip);
$mes="<font face=verdana size=1 color=000000>$hora</font><font face=verdana size=1 color=ff6600> $nome <font face=verdana size=1 color=000000>fala para</font> $b</font>: <font face=verdana size=1 color=000000>$e</font>";
include ("./insere.php");
echo "<html><head>";
echo "<meta HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\">";
echo "<script language=JavaScript>
function DuasUrls(frame1,url1,frame2,url2) {
parent.frames(frame1).location = url1;
parent.frames(frame2).location = url2;
}
</script>";
echo "</head><body onLoad=\"javascript:DuasUrls('inferior','form.php','conteudo','ler.php')\">";
echo "</body></html>";
?>
Teste! qdo vc envia a mensagem, ele faz o refresh na página form.php e ler.php, enviando a mensagem para o chat.
Bons Estudos,
saintsanchez ::)
22/12/2005 2:56pm
(~19 anos atrás)
pq o @(arroba) antes da função time nos arquivos remove e atualiza (.php)???
$time = @time();
$timer=time();
$timeout = time()-(60*$tmesg);
$time = @time();
$timer=time();
$timeout = time()-(60*$tmesg);
28/05/2005 10:14pm
(~19 anos atrás)
aí amigo não o pq de vc ter colocado o flush no final do arquivo atualiza.php!! Poderias me explicar?
28/05/2005 9:58pm
(~19 anos atrás)
aí romano, para que serve o target nos frames? é possível usá-los como atributo nos frames?
28/05/2005 5:50pm
(~19 anos atrás)
eu até tentei criar uma sala de chat, porém não sei em qual programa copio os código para que eu possa testar e aprender.
frontpage?
wordpad?
ou tenho que ter um programa específico para isso?
frontpage?
wordpad?
ou tenho que ter um programa específico para isso?
23/09/2004 12:36am
(~20 anos atrás)
$linha[1]
\");"; echo "parent.principal.scrollTo(0,100000);"; echo ""; $resultado2 = "UPDATE perfis SET last ='$linha[0]' WHERE ip ='$ip'"; $atualiza2 = mysql_query($resultado2, $conexao); } } mysql_close($conexao); flush(); ?>