Aggiornare pagina quando c'è un nuovo messaggio

  • Creatore Discussione Creatore Discussione Shyson
  • Data di inizio Data di inizio

Shyson

Utente Attivo
19 Ago 2012
1.179
1
38
Con questo codice si aggiorna il sito con l'ultima data, però ho notato che se l'utente scrive un messaggio in questa pagina non avviene l'aggiornamento del sito.


PHP:
<?php
// Aggiorna la data in tutte le pagine anche se ne modifichi una
function ultimo_aggiornamento(){ 
    $file=glob('*');//legge tutti i file 
    $file = array_filter($file, "is_file");//verifica se sono file 
    $mod_time = array_map('filemtime', $file);//legge il tempo  
    return max($mod_time); //estrae il massimo 
}
...
echo "Ultimo aggiornamento: ".date("d.m.Y",ultimo_aggiornamento()); ?>
 
Ultima modifica di un moderatore:
Perchè se hai un db il messaggio viene salvato nel db e non in una pagina.
 
Perchè se hai un db il messaggio viene salvato nel db e non in una pagina.
Si, però poi il messaggio viene estratto dal db e viene stampato. Il fatto stesso che vengono stampate le parole del messaggio è già questo un cambiamento della pagina perciò in teoria dovrebbe fare l'aggiornamento
 
No perchè non cambia il codice della pagina. Cambia solo il contenuto delle variabili.
 
Non in quel modo. Dovresti creare un controllare quando è stato inviato l'ultimo messaggio per vedere l'ultimo aggiornamento di quella tabella del db.
 
Non in quel modo. Dovresti creare un controllare quando è stato inviato l'ultimo messaggio per vedere l'ultimo aggiornamento di quella tabella del db.

La tabella contiene la data dell'ultimo messaggio, come si crea il controllore?
 
E' una semplice query:
Codice:
SELECT max(data) FROM tabella

Bene, ma dove lo posiziono?

Questo è il codice:

PHP:
$numero=3; // Limite max successi da visualizzare nella pag. successi.php
// Estraggo 3 successi dall'alto verso il basso, in ordine crescente
$q="SELECT * FROM successi ORDER BY id ASC LIMIT $numero"; 
// Lancio la query
$ris=mysql_query($q); 
if(mysql_num_rows($ris) > 0) { // Conto i record
    // Leggo un record alla volta e lo stampo a video
    while($riga=mysql_fetch_array($ris)) {
        //verifico se il conteggio è pari o dispari e in alternato cambio il colore
        if($contatore%2==0) {
        $sfondo="#f7f7f7";
        }
        else {
        $sfondo="#efefef";  
        }
        echo "<div class=\"dataBox\">".$riga['dataGmtS']."<div class=\"idSuccessiSX\"></div><div class=\"idSuccessiDX\">#".$riga['id']."</div></div>"; 
        echo "<div class=\"stampaS\" style=\"background-color: $sfondo \">"; 
        echo "<div class=\"campiAltiS\">"; 
        echo "<div class=\"oggettoBox\">".preg_replace($paroleArray, $replacements, $riga['oggettoS'])."</div>";  
        echo "</div>"; // campiAltiS
        $riga['messaggioS'] = preg_replace($paroleArray, $replacements, $riga['messaggioS']);
        $riga['messaggioS'] = preg_replace($sitiArray, $replacements1, $riga['messaggioS']);
        $riga['messaggioS'] = str_ireplace("http://[Sito no good]", "[Sito no good]", $riga['messaggioS']); 
        //Rende l'URL linkabile nel campo messaggio, va messo qui
        $riga['messaggioS'] = preg_replace("/(ftp(s|es)?:\/\/|sftp:\/\/|http(s)?:\/\/|www\.)[A-Za-z0-9_!#$%&;:.,*+=?^{|}()~\/-]+(\.[a-z]{2,20})((\/)[-_!#$%&;:.,*+=?^{|}()~A-Za-z0-9\/]*)*/","<a class=\"carattereText\" href=\"$0\">$0</a>",$riga['messaggioS']);                                                                                       
        //Faccine, vanno messe in QUESTO punto DELLA PAG.
        $riga['messaggioS'] = str_ireplace(":CONFUSO:","<img src=\"http://localhost:8888/MIEI%20SITI/Alveo/faccine/cxonfuso.gif\" alt=\"Confuso\" title=\"Confuso\" />",$riga['messaggioS']);
        $riga['messaggioS'] = str_ireplace(":IMPOSSIBILE:","<img src=\"http://localhost:8888/MIEI%20SITI/Alveo/faccine/ixmpossibile.gif\" alt=\"Impossibile\" title=\"impossibile\" />", $riga['messaggioS']);
        $riga['messaggioS'] = str_ireplace(":TESTARDO:","<img src=\"http://localhost:8888/MIEI%20SITI/Alveo/faccine/txestardo.gif\" alt=\"Testardo\" title=\"Testardo\" />",$riga['messaggioS']);
        $riga['messaggioS'] = str_ireplace(":PIANGE:","<img src=\"http://localhost:8888/MIEI%20SITI/Alveo/faccine/pxiange.gif\" alt=\"Piange\" title=\"Piange\" />",$riga['messaggioS']);
        $riga['messaggioS'] = str_ireplace(":BACIO:","<img src=\"http://localhost:8888/MIEI%20SITI/Alveo/faccine/bxacio.gif\" alt=\"Bacio\" title=\"Bacio\" />",$riga['messaggioS']);
        $riga['messaggioS'] = str_ireplace(":FELICE:","<img src=\"http://localhost:8888/MIEI%20SITI/Alveo/faccine/fxelice.gif\" alt=\"Felice\" title=\"Felice\" />",$riga['messaggioS']);
        $riga['messaggioS'] = str_ireplace(":RIDE:","<img src=\"http://localhost:8888/MIEI%20SITI/Alveo/faccine/rxide.gif\" alt=\"Ride\" title=\"Ride\" />",$riga['messaggioS']);
        $riga['messaggioS'] = str_ireplace(":OCCHIOLINO:","<img src=\"http://localhost:8888/MIEI%20SITI/Alveo/faccine/oxcchiolino.gif\" alt=\"Occhiolino\" title=\"Occhiolino\" />",$riga['messaggioS']);
        $riga['messaggioS'] = str_ireplace(":CIAO:","<img src=\"http://localhost:8888/MIEI%20SITI/Alveo/faccine/cxiao.gif\" alt=\"Ciao\" title=\"Ciao\" />",$riga['messaggioS']);
        $riga['messaggioS'] = str_ireplace(":PAURA:","<img src=\"http://localhost:8888/MIEI%20SITI/Alveo/faccine/pxaura.gif\" alt=\"Paura\" title=\"Paura\" />",$riga['messaggioS']);
        echo "<div class=\"messaggioBox\">".$riga['messaggioS']."</div>"; 
        echo "<div class=\"bassoS\"></div>"; // bassoS  
        echo "<div class=\"nomeBox\">".preg_replace($paroleArray, $replacements, $riga['nomeS']).",</div>"; 
        if(!empty($riga['cittaS'])) {  // Se il campo è vuoto non stampa neanche la virgola 
        echo "<div class=\"cittaBox\">".preg_replace($paroleArray, $replacements, $riga['cittaS']).",</div>"; 
        } 
        echo "<div class=\"ipBox\"><strong>Ip:</strong> ".$riga['ip']."</div>";   
        echo "<div class=\"bandierinaBox\">".$riga['bandierina']."<div class=\"nazione\">".$riga['country']."</div></div>"; 
        echo "</div>";//stampaS 
        $contatore ++; // a ogni giro incremento di uno 
    }
 //*********Inizio trasferimento nella tabella archivio
...
 
Anche alla fine del file in questione. Dove ne hai bisogno in pratica.
 
Anche alla fine del file in questione. Dove ne hai bisogno in pratica.

Sarebbe meglio qui, così sono tutti assieme, ma come si mette esattamente?

PHP:
// Aggiorna la data in tutte le pagine anche se ne modifichi una
function ultimo_aggiornamento(){ 
    $file=glob('*');//legge tutti i file 
    $file = array_filter($file, "is_file");//verifica se sono file 
    $mod_time = array_map('filemtime', $file);//legge il tempo  
    return max($mod_time); //estrae il massimo 
}
 
Quella che ti ho postato è una query.
Basta farla eseguire con mysql_query e con mysql_fetch_array prendi i valori.
 
Quella che ti ho postato è una query.
Basta farla eseguire con mysql_query e con mysql_fetch_array prendi i valori.

Ho messo così ma non aggiorna

PHP:
// Aggiorna la data in tutte le pagine anche se ne modifichi una
function ultimo_aggiornamento(){ 
$k=mysql_query("SELECT max(dataGmtS) FROM successi"); 
$y=mysql_fetch_array($k); 
    $file=glob('*');//legge tutti i file 
    $file = array_filter($file, "is_file");//verifica se sono file 
    $mod_time = array_map('filemtime', $file);//legge il tempo  
    return max($mod_time); //estrae il massimo 
    return max($y); 
}
 
Ultima modifica:
Be' ovvio. Una volta fatto il primo return il secondo neanche lo calcola.
 
Prova con:
PHP:
function ultimo_aggiornamento(){ 
    $result=mysql_query("SELECT max(dataGmtS) as data FROM successi"); 
    $value=mysql_fetch_array($result); 
    $file=glob('*');//legge tutti i file 
    $file = array_filter($file, "is_file");//verifica se sono file 
    $mod_time = array_map('filemtime', $file);//legge il tempo  
    return $value['data'] > max($mod_time) ? $value['data'] : max($mod_time); 
}
 
Prova con:
PHP:
function ultimo_aggiornamento(){ 
    $result=mysql_query("SELECT max(dataGmtS) as data FROM successi"); 
    $value=mysql_fetch_array($result); 
    $file=glob('*');//legge tutti i file 
    $file = array_filter($file, "is_file");//verifica se sono file 
    $mod_time = array_map('filemtime', $file);//legge il tempo  
    return $value['data'] > max($mod_time) ? $value['data'] : max($mod_time); 
}

Aggiorna solo se modifico la pagina, ma no se invio il messaggio
 

Discussioni simili