salve vorrei fare delle modifiche alla mia community in php e sono intenzionato a fare in modo che si possano ricevere msg da i vari utenti attraverso l'apertura di un popup in automatico.
in partica al momento quando sono presenti nuovi msg ho fatto ijn modo che comparisse un testo che avverte della presenza di nuovi msg utilizzando la seguente funzione:
Questa funzione l'ho modificata in modo da poter estrarre valore S o N stampato in una pagina bianca in base alla presenza o meno di nuovi msgCodice PHP:function nuovi_messaggi($id_utente){
global $_CONFIG;
$messaggi = mysql_query("
SELECT id_messaggio
FROM ".$_CONFIG['table_messaggi']."
WHERE id_destinatario = ".$id_utente." AND
letto <> 'y'
");
if (mysql_num_rows($messaggi)>0){
$risultato = "<font color='ff0000'>Nuovi (".mysql_num_rows($messaggi).")</font>";
}else{
$risultato = "";
}
return $risultato;
}
Attraverso un echo faccio in modo che la pagina di verifica denominata control_newmsg.phpCodice PHP:function nuovi_messaggi_check($id_utente){
global $_CONFIG;
$messaggi = mysql_query("
SELECT id_messaggio
FROM ".$_CONFIG['table_messaggi']."
WHERE id_destinatario = ".$id_utente." AND
letto <> 'y'
");
if (mysql_query($messaggi)>0){
$risultato = "S";
}else{
$risultato = "N";
}
return $risultato;
}
possa presentare il valore N o S utilizzando questo comando:
Quindi ho fatto un ulteriore file denominato pop_msg.php in cui vado a porre il codice che mi permette di estrapolare i dati realtivi al msg :Codice PHP:echo nuovi_messaggi_check ($user["id_user"]);
A questo punto nella home della communiti ho integrato queste due funzioni : una per il controllo del valore S o N :Codice PHP:<?
include_once("log/include/config.php");
include_once("log/include/auth.lib.php");
list($status, $user) = auth_get_status();
if ($status == AUTH_LOGGED){
if($user["id_user"]==$_GET["id"]){
$type = '1';
$update = 'y';
}else{
$type = '0';
$update = 'n';
}
$prof = get_profilo($_GET["id"]);
?>
<?
if ((isset($_GET["id"])) AND ($messaggi = get_messaggi($_GET["id"],$type,$start,$rec_pagina,$update))){
$messaggi_tot = mysql_query("
SELECT *
FROM ".$_CONFIG['table_messaggi']."
WHERE ".$_CONFIG['table_messaggi'].".tipo <= '".$type."' AND
".$_CONFIG['table_messaggi'].".id_destinatario = ".$_GET["id"]
);
$num_record = mysql_num_rows($messaggi);
?>
<?
while ($row = mysql_fetch_array($messaggi)){
$data_m = explode("-",$row["data_invio"]);
?>
<table width="100%" border="0" align="center" cellpadding="4" cellspacing="2" style="margin-bottom:1px;">
<tr>
<td bgcolor="#0099CC" class="cellaheadercommunity"><b class="testoform">Messaggio
<? if ($row["tipo"]=='1'){ echo "PRIVATO"; }else{ echo "PUBBLICO"; } ?>
da:[/b] [url="home.php<?=$link?>&p=profilo&id=<? echo $row["]" class="menu"><? echo $row["username"] ?>[/url],
<b class="testoform">Data: <? echo $data_m[2]."/".$data_m[1]."/".$data_m[0]; ?>[/b]-
<b class="testoform">Ora: <? $ora_m = print($row["ora_invio"]);?>[/b]
<? if ($_GET["id"]==$user["id_user"]){ ?>
- [url="home.php<?=$link?>&p=scrivi&id=<? echo $row["]" class="menu">RISPONDI[/url]
- <a href="home.php<?=$link?>&p=cancella&id=<? echo $row["id_messaggio"]; ?>" class="menu">CANCELLA
</a>
<? } ?> </td>
</tr>
<tr>
<td class="cellasezioni_letto_<? echo $row["letto"]; ?>"><font style="font-family:Verdana, Arial, Helvetica, sans-serif"><?
$text = $row["testo"];
$newtext = wordwrap($text, 65, "\n", 1);
echo "$newtext\n"; ?></font></td>
</tr>
</table>
var xmlhttp
ed una che una volta verificata la condizione S mi faccia aprire il popup con il contenuto del msg:codice:function loadResponseDoc(url) { var parameters = ""; alert(parameters); url += parameters; alert(url); xmlhttp=null // code for Mozilla, etc. if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest() } // code for IE else if (window.ActiveXObject) { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP") } if (xmlhttp!=null) { xmlhttp.onreadystatechange=state_Change xmlhttp.open("GET",url,false) xmlhttp.send(null) } else { alert("Your browser does not support XMLHTTP.") } }
la mia domanda è se questa è l astrada da esegurie e se eventualmente ci sono metodi più semplici e diretti per poter effettuare l'invio dei msg attravero popup con contenuto dinamico.codice:function state_Change() { // if xmlhttp shows "loaded" if (xmlhttp.readyState==4) { // if "OK" if (xmlhttp.status==200) { var response = xmlhttp.responseText; alert(response); if(response=='S') { window.open('pop_msg.php','toolbar=no,location=no,directories=no,status=no,menub ar=no,scrollbar=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+''); } } else { alert("Problem retrieving RESPONSE data:" + xmlhttp.statusText) } } }

Rispondi quotando
Kann keine XMLHTTP-Instanz erzeugen');