Jump to content
Fórum Script Brasil
  • 0

Chat - Não consigo entender


Carlos Rocha

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...