Ir para conteúdo
Fórum Script Brasil
  • 0

Chat - Não consigo entender


Carlos Rocha

Pergunta

Pessoal.

Boa Tarde!

Após vaias e varias tentativas de entender, sem sussesso, decidi pedir a ajuda de voces.

peguei aqui na internet o chat do Romano e observei que ele funciona bem.

Porem, uma coisa me chamou a atenção.

Quando mando mensagem privada para o usuario TODOS, eu, o usuario ue envia, vejo a mensagem reservada. Porem, os outros estinatarios não veem a mensagem.

Porem, quando a mensagem é endereçada a cada um deles em privado. Ai, eles veem sim a mensagem.

Se enviar a mensagem a TODOS sem ser privada todos veem mas se for privada, só que enviou ve.

Como corrigir isso?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Aqui esta a função que lista as mensagens:

/**
 * Lista as mensagens da sala.
**/
   function msgs() {
      $i = "0";
      $msgs=array();
      $consulta = mysql_query("SELECT * FROM msg WHERE ((rem='".$this->nome."' OR dest='".$this->nome."' OR tipo='pub') && date > '$_SESSION[date]' && sala='".$this->sala."') ORDER BY date ASC;", $this->dbh);
      while ($row = mysql_fetch_array($consulta)) {
         $msgs[$i]["tipo"]  = $row["tipo"];
         $msgs[$i]["msg"]  = $row["msg"];
         $msgs[$i]["som"]  = $row["som"];
         $msgs[$i]["dest"] = $row["dest"];
         $msgs[$i]["rem"]  = $row["rem"];
         $_SESSION['date'] = $row["date"];
         $i++;
      }
      mysql_free_result($consulta);
      return $msgs;
   }
Aqui esta o filtro
<?php

####################################
#                                  #
#  MODIFICADO POR: JRF WEBMASTER   #
#  VERSÃO ATUAL:   8.0             #
#  DATA:           01/08/2006      #
#                                  #
####################################

include_once("./config.php");
include_once("./global.php");
include_once("./biblioteca/tbs_class.php");
$banco = new chat;
$banco->dados($_GET['uid']);
if($banco->block($_GET['uid'])){
  $target="vai();";
}else{
  $target="";
}
if (empty($_SESSION['date'])) {
 $_SESSION['date'] = 0;
}
if (empty($_SESSION['header']) OR $_SESSION['header']!= $_GET['uid']) {
 $arquivo = "./templates/".$banco->config['modelo']['val']."/principal.htm";
 $header = fopen($arquivo, "r");
 $lido = fread($header, filesize($arquivo));
 fclose($header);
 $limpa = addslashes($lido)."\n\n";
 $limpa = str_replace("\t", "", $limpa);
 $limpa = str_replace("\r", "", $limpa);
 $limpa = str_replace("\n", "\\n", $limpa);
 $inicio = $limpa;
 $_SESSION['header'] = $_GET['uid'];
}
$model = new clsTinyButStrong;
$model->LoadTemplate("./templates/".$banco->config['modelo']['val']."/inferior.htm"); 
$msgs  = $banco->msgs();
$total = count($msgs);
$cont  = $banco->cont("TODOS");
$str   = $ext = "";
$str  .= (!empty($inicio)) ? $inicio : "";
for ($i = "0"; $i < $total; $i++) {
 $tipo  = $msgs[$i]["tipo"]; 
 $rem  = $msgs[$i]["rem"];
 $dest = $msgs[$i]["dest"];
 $mensagem = addslashes($msgs[$i]["msg"]);
 $som = $msgs[$i]["som"];

 if (empty($_SESSION['ignora'][$rem]) && empty($_SESSION['ignora'][$rem])) {
  $para = ($dest == $banco->nome) ? ' bgcolor=\"#cccccc\"' : "";
  $codigo = '<table width=\"100%\" border=\"0\" cellspacing=\"5\" cellpadding=\"2\"><tr><td'.$para.'>'.$mensagem.'"+PlaySound("'.$som.'")+"</td></tr></table>'."\n";
  $codigo = str_replace("\t", "", $codigo);
  $codigo = str_replace("\r", "", $codigo);
  $codigo = str_replace("\n", "\\n", $codigo);
  $str .= $codigo;

 }
 if (empty($inicio) && ($som == "entra" OR $som == "saida" OR $cont != $_SESSION['cont'])) {
  $ext .= "window.parent.nomes.location.reload();\n";
  $_SESSION['cont'] = $cont;
 }
}
$banco->atualiza();
$refresh=10*$banco->config['refresh']['val'];
$model->Show();
?>
<script language="Javascript">
function right(e) {
if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2)){
alert("Proibido a cópia do código desta página");
return false;
}
else if (navigator.appName == 'Microsoft Internet Explorer' &&
(event.button == 2 || event.button == 3)) {
alert("Proibido a cópia do código desta página");
return false;
}
return true;
}
document.onmousedown=right;
if (document.layers) window.captureEvents(Event.MOUSEDOWN);
window.onmousedown=right;
</script>

Só não entendo porque o reservado a todos só vai para quem envia e o enviado a todos sem reserva vai para todos ois usuarios.

Pela query ou pelo php não vejo logica.

Link para o comentário
Compartilhar em outros sites

  • 0

Segue tambem a estrutura da tabela:

CREATE TABLE `msg` (
  `msg` mediumtext,
  `date` datetime DEFAULT NULL,
  `rem` varchar(30) DEFAULT NULL,
  `dest` varchar(30) DEFAULT NULL,
  `som` varchar(20) DEFAULT NULL,
  `tipo` varchar(10) DEFAULT NULL,
  `sala` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...