codice:
// funzione per la chiamata dell'oggetto XMLHttpRequest
function ajax(){
  var ajaxRequest;
  try{
    // controllo per i browser diversi da IE
    ajaxRequest = new XMLHttpRequest();
  }catch (e){
    // contorollo per IE
    try{
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e){
      try{
        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
      }catch (e){
        // controllo per i browser che non supportano l'XMLHttpRequest
        alert("Il browser non supporta questo ShoutBox");
        return false;
      }
    }
  }
  return ajaxRequest;
}

// funzione per il salvataggio dei dati
function salva(){
  htmlRequest = ajax();
  if (htmlRequest==null){
    alert ("Il browser non supporta richieste HTTP");
    return;
  }
  // controlliamo i parametri obbligatori
  if(document.form_invio.nick.value == "" || document.form_invio.nick.value == "NULL" || document.form_invio.testo.value == "" || document.form_invio.testo.value == "NULL")
  {
    alert('Inserisci sia il Nick che il testo');
    return;
  }
  // inviamo i parametri al file per l'INSERT nel database
  htmlRequest.open('POST', 'invia.php');
  htmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  htmlRequest.send('nick='+document.form_invio.nick.value+'&testo='+document.form_invio.testo.value+'&sito_web='+document.form_invio.sito_web.value);

  // svuotiamo il modulo per il messaggio
  document.form_invio.testo.value = '';
  document.form_invio.testo.focus();
}


// funzione per mostrare i dati
function mostra() {
  htmlRequest = ajax();
  // controllo nel caso in cui non possa richiamato l'oggetto Xmlhttp
  if (htmlRequest==null){
    alert ("Il browser non supporta richieste HTTP");
    return;
  }
  htmlRequest.onreadystatechange = function(){
    // Restituisce lo stato della richiesta
    if(htmlRequest.readyState == 4){
      // Restituice il corpo della risposta come stringa
      document.getElementById("modulo").innerHTML = htmlRequest.responseText;
    }
  }
  // chiamata della pagina PHP che estrae i records
  htmlRequest.open("GET", "mostra.php", true);
  htmlRequest.send(null);
}
// chiamata alla funzione
mostra();
// intevallo per l'aggiornamento della pagina
setInterval("mostra()",1000);
Se io refresho la pagina mi appare il doppione...se la refresho di nuovo invece non crea piu' doppioni...rimane a video solo il messaggio originale e il doppione anche se refresho 10 volte....poi comunque nel database al refresh non avviene nessun inserimento di doppioni quindi credo che il problema deriva da questo file giusto?