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:
Codice 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;

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 msg
Codice 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;

Attraverso un echo faccio in modo che la pagina di verifica denominata control_newmsg.php
possa presentare il valore N o S utilizzando questo comando:
Codice PHP:
echo nuovi_messaggi_check ($user["id_user"]); 
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:
<?
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?>&amp;p=profilo&amp;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?>&amp;p=scrivi&amp;id=<? echo $row["]" class="menu">RISPONDI[/url
            - <
a href="home.php<?=$link?>&amp;p=cancella&amp;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($text65"\n"1);
          echo 
"$newtext\n"?></font></td>
        </tr>
      </table>
A questo punto nella home della communiti ho integrato queste due funzioni : una per il controllo del valore S o N :
var xmlhttp

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.")
	}
}
ed una che una volta verificata la condizione S mi faccia aprire il popup con il contenuto del msg:
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)
	  	}
 	}
}
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.