Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal.
Boa Noite.
Peguei na net aquele chat do Romano e me deparei com a seguine situação;
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?
como normalmente não consegui, ai fiz assim:
Quando clikasse no usuario, no menu de usuarios, se esse usuario fosso o "TODOS", teria uma div (que seria desabilitada) com um radio button dentro.
Quando o usuario não fosse o todos, ai sim a div seria habilitada e o clike no radio butoon habilitado tambem.
Acontece que, numa coinversa em resevado, quando eu submeto a mensagem, a pagina da um reload e, como eu coloquei no carregamento da pagina que o style.block do radio buitton seria none. daí não sei como, apos o reload da pagina, eu saber que o usuario selecionado é o mesmo e que pode continua liberado a radio.
Mais facil voces acessando:
Quem puder ajudar agradeço.
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
####################################
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;Carregando comentários...