salve a tutti
Ho un problema con l'invio dei messaggi in una community:
In pratica quelloc che intendo fare è questo:
Un utente registrato e loggato deve inviare un msg ad un altro utente.
quest'ultimo deve riceve il msg attraverso l'apertura di un popup.
la funzione che mi stabilisce la ricezione del messaggio è la seguente:

Codice PHP:
function get_messaggi($id,$tipo,$start,$rec_pagina,$update){
    global 
$_CONFIG;
    
    
$messaggi mysql_query("
    SELECT *
    FROM "
.$_CONFIG['table_messaggi']."
    INNER JOIN "
.$_CONFIG['table_utenti']."
    ON "
.$_CONFIG['table_messaggi'].".id_mittente = ".$_CONFIG['table_utenti'].".id
    WHERE "
.$_CONFIG['table_messaggi'].".tipo <= '".$tipo."' AND
    "
.$_CONFIG['table_messaggi'].".id_destinatario = ".$id."
    ORDER BY "
.$_CONFIG['table_messaggi'].".data_invio DESC, ".$_CONFIG['table_messaggi'].".letto, ".$_CONFIG['table_messaggi'].".id_messaggio DESC 
    LIMIT "
.$start.", ".$rec_pagina
    
);
    
$salva mysql_query("
            SELECT *
            FROM "
.$_CONFIG['table_messaggi']."
            INNER JOIN "
.$_CONFIG['table_utenti']."
            ON "
.$_CONFIG['table_messaggi'].".id_mittente = ".$_CONFIG['table_utenti'].".id
            WHERE "
.$_CONFIG['table_messaggi'].".tipo <= '".$tipo."' AND
            "
.$_CONFIG['table_messaggi'].".id_destinatario = ".$id."
            ORDER BY "
.$_CONFIG['table_messaggi'].".data_invio DESC, ".$_CONFIG['table_messaggi'].".letto, ".$_CONFIG['table_messaggi'].".id_messaggio DESC 
            LIMIT "
.$start.", ".$rec_pagina
            
);
    
        
    if (
$update=='y'){
        
        
        while (
$messaggio=mysql_fetch_array($messaggi)){
            
mysql_query("
            UPDATE "
.$_CONFIG['table_messaggi']."
            SET letto = 'y'
            WHERE id_messaggio = "
.$messaggio["id_messaggio"]
            );
        }
    }

    
    
    if (
mysql_num_rows($salva)>0){
        return 
$salva;
    }else{
        return 
false;
    }


La funzione che mi permette di scrivere il messaggio invece è questa:
Codice PHP:
function scrivi_messaggio($mittente,$destinatario,$tipo,$testo)
{
global 
$_CONFIG;

$day date("d",time()); 
$month date("m",time()); 
$year date("Y",time()); 
$data_log $year ."-"$month ."-"$day;

mysql_query ("
INSERT INTO "
.$_CONFIG['table_messaggi']."
(id_mittente, id_destinatario, tipo, testo, data_invio, letto)
VALUES
("
.$mittente.", ".$destinatario.", '".$tipo."', '".$testo."', '".$data_log."', 'n')
"
);

    if (
mysql_insert_id()){
        return 
"Messaggio inviato correttamente";
    }else{
        return 
"Messaggio NON inviato";
    }


la funzione che mi seleziona i msg dal database è la seguente:
Codice PHP:
function messaggi(){
    global 
$_CONFIG;
    
    
$mess mysql_query("
    SELECT id_messaggio
    FROM "
.$_CONFIG["table_messaggi"]."
    "
);
    
    
$numero mysql_num_rows($mess);
    
    return 
$numero;

Mentre quella utilizzata per cancellare i messaggi è la seguente:

Codice PHP:
function cancella_messaggio($id){
    global 
$_CONFIG;
    
mysql_query("
    DELETE FROM "
.$_CONFIG["table_messaggi"]."
    WHERE id_messaggio = "
.$id
    
);





La pagina messaggi.php si compone in questo modo:
Codice PHP:
<?
include_once("include/config.php");
include_once(
"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';
}
$start = isset($_GET["start"])?$_GET["start"]:'0';
$rec_pagina '8';
$prof get_profilo($_GET["id"]);
?>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="tabsezioni" >
<tr>
<td height="41" align="center" class="cellaheaderprofilo"><span class="linkbianco">MESSAGGI DI:
Codice PHP:
<? echo $prof["username"]; ?>
</span></td>
</tr>
Codice PHP:
<?
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_tot);
$numero_pagine ceil($num_record/$rec_pagina);
?>
<tr>
<td bgcolor="#FFFFFF">
Codice PHP:
  <?
    
while ($row mysql_fetch_array($messaggi)){
    
$data_m explode("-",$row["data_invio"]);
    
?>
<table width="96%" border="0" align="center" cellpadding="3" cellspacing="1" class="tabsezioni">
<tr>
<td class="cellaheadeinfoutente">Messaggio
Codice PHP:
<? if ($row["tipo"]=='1'){ echo "privato"; }else{ echo "pubblico"; } ?>
            da:
Codice PHP:
 [url="home.php<?=$link?>&amp;p=profilo&amp;id=<? echo $row["]" class="minilink_m"><? echo $row["username"?>[/url],
Data:
Codice PHP:
<? echo $data_m[2]."/".$data_m[1]."/".$data_m[0]; ?> 
            
            <? if ($_GET["id"]==$user["id_user"]){ ?>
- [/PHP]" class="minilink_m">RISPONDI
- [/PHP]<a href="home.php<?=$link?>&amp;p=cancella&amp;id=<? echo $row["id_messaggio"]; ?>" class="minilink_m Stile1">CANCELLA
</a>
<? } ?>[/PHP] </td>
</tr>
<tr>
<td bgcolor="#FFFFFF" class="cellasezioni_letto_
Codice PHP:
<? echo $row["letto"]; ?>"><? echo estrazione_dati($row["testo"]); ?>
</td>
</tr>
</table>

Codice PHP:
<?
    
}
    if (
$numero_pagine 1) { 
            
//inizio della condizione per creare l'elenco delle pagine 
            
echo  "<div class='minilink'>
[b]Pagine:[/b] [ [url='"
.$_SERVER[']1[/url] ] "; 
            for ($pagina = 2; $pagina <= $numero_pagine; $pagina++) { 
                echo  "[ [url='".
$_SERVER[']".$pagina"[/url] ] "
              } 
          echo 
"</div>";
          }  
// fine "elenco" 
        
?>
</td>
</tr>
<tr >
<td height="20" bgcolor="#FFFFFF"></td>
</tr>
Codice PHP:
<?
}
}else{
header("Refresh: 3;URL=home.php");
echo 
'<div align="center">NON Sei connesso ... ... </div>';
}
?>
</table>

In pratica tutto quello che ho scritto funziona e non da lacun problema sia per quanto riguarda l'invio che per la cancellazione dei msg.
Per un ulteriore chiarimento della cosa posto anche le pagine Cancella (msg) e scrivi (msg).
magari può servire a qualcuno come spunto.

la pagina cancella.php è cosi strutturata:

Codice PHP:
<?
include_once("include/config.php");
include_once(
"include/auth.lib.php");

list(
$status$user) = auth_get_status();

if (
$status == AUTH_LOGGED){
?>
Il codice per la cancellazione è il seguente:
Codice PHP:
<?
    
if (isset($_GET["id"])){
        
cancella_messaggio($_GET["id"]);
        
header("Refresh: 0;URL=home.php".$link."&p=messaggi&id=".$user["id_user"]."&update=y");
        echo 
'<div align="center">Cancellazione effettuata con successo.</div>';
    }
    
    
?>
La pagina scrivi.php (msg) è cosi strutturata:
Codice PHP:
<?
include_once("include/config.php");
include_once(
"include/auth.lib.php");

list(
$status$user) = auth_get_status();
$prof get_profilo($_GET["id"]);

if (
$status == AUTH_LOGGED){

    
?>
mentre il codice utilizzato per inviare il msg è:
Codice PHP:
<?
      
if ((isset($_POST["Submit"])) AND ($_POST["Submit"] = "Invia")){
        if (
$_POST["testo"] != ""){
            
            echo 
scrivi_messaggio($user["id_user"],$prof["id"],$_POST["tipo"],inserimento_dati($_POST["testo"]))."
"
;
        }else{
            echo 
"Inserire un testo. Premere il tasto Indietro del tuo Browser per ripovare.
"
;
        }
    }else{
      
?>
Il form di invio è il seguente:
[HTML]<form name="form1" method="post" action="<? echo $_SERVER['PHP_SELF']."?".$_SERVER['QUERY_STRING'];?>">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center">
<textarea name="testo" cols="55" rows="10" id="testo"></textarea></td>
</tr>
<tr>
<td align="center">
<input name="tipo" type="radio" value="1" checked="checked">
<span class="Stile1"> Privato</span>
<input name="tipo" type="radio" value="0">
<span class="Stile1"> Pubblico</span></td>
</tr>
<tr>
<td align="center"><input name="Annulla" type="reset" id="Annulla" value="Annulla">
-
<input name="Submit" type="submit" id="Submit" value="Invia"></td>
</tr>
</table>
</form>


Come si vede attraverso questo codice si ha la possibilità di inviare sia msg privati (che possono essere letti solo da chi lo riceve ) che msg pubblici (che possono essere letti da tutti gli utenti registrati alla community.

Per concludere dop0o tutto il codice scritto ripeto il mio problema riguarda la modifica dell'invio msg in pratica a me servirebbe fare in modo che i msg inviati vengano visualizzati attraverso l'ìapertura di un popup nel browser di chi lo riceve.

Spero di non aver fatto troppi casini e vi auguro buona giornata a tutti.