Carcleo 4 Denunciar post Postado Julho 9, 2011 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? Compartilhar este post Link para o post Compartilhar em outros sites
Andrey Knupp Vital 136 Denunciar post Postado Julho 9, 2011 Olá amigo, visualize o link que postei no seguinte tópico :seta: Chat em PHP Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 9, 2011 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. 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; Compartilhar este post Link para o post Compartilhar em outros sites
Vini_Aviva 13 Denunciar post Postado Julho 9, 2011 Se você prestar bem atençao vai entender isso nao é erro Se você reservar a Todos o sistema está considerando Todos como um membro do chat Se você enviar normalmente a todos, todos vao ver a mensagem. Cara é so desabilitar a opção de reservadado para todos Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 11, 2011 Pois é. Foi exatamente isso que eu fiz. Só que o cliente viu o chat do UOL que funciona assim e resolveu que quer igual ao do UOL. O usuario clikando em reservado a TODOS e todos vendo. Puxa pessaol. Ainda não consegui resolver essa. Se alguem pudesse me ajudar e agradeceria muito. Compartilhar este post Link para o post Compartilhar em outros sites