[gdrcd 5.2.1] Refresh presenti
[gdrcd 5.2.1] Refresh presenti postato il 17/07/2019 18:56:28 nel forum programmazione, open source e hosting e modificato da gdr-online.com il 17/07/2019 19:28:05
Ciao a tutti!
E' da ieri sera che si spulcia il forum ma tutti gli argomenti simili non hanno aiutato a risolvere il problema e quindi non si sa più dove sbattere la testa.
Era già successo una volta che i presenti estesi, ma anche l'iframe, non facessero il refresh adeguatamente e questo comportava pg connessi ma non visibili. E' stato caricato di nuovo il file originale e tutto è andato a posto. Da ieri sera ha ripreso a fare lo stesso scherzo. Se rimani connesso senza fare nulla, scompari. Non importa se sei in mappa o in chat ma diventi invisibile e in più, il frame presenti, continua a segnalare le persone come se si bloccasse, per poi farle scomparire. Anche questa volta sono stati caricati i vecchi file ma niente.
E' stato agito sul ref_header in minima parte, ovvero assegnando diversi numeri agli span chat per il richiamo nel file chat css. E' possibile che sia quello? Può essere cloudflare? Abbiam provato a ricaricare anche il ref_header senza quelle modifiche ma i presenti non ne vogliono sapere.
Grazie per l'aiuto!
Pagine → 1
17/07/2019 19:27:43
Magari ricordo malissimo ma cloudflare una volta almeno si poteva abilitare/disabilitare alla bisogna. Hai già provato a stoppare il servizio per iniziare ad escludere quello?
17/07/2019 19:43:55
Disabilitare non saprei, ora controllo! So che si può abbassare il livello o alzarlo ma do un occhio anche per questo grazie!
03/11/2019 10:05:04
Riporto in luce questo Topic poiché anche io sto riscontrando questo problema da un po' di tempo a questa parte anche se in riferimento ai presenti più che a quelli estesi.
L'iframe non fa il refresh adeguatamente e questo comporta pg connessi ma non visibili. Se rimani connesso senza fare nulla, scompari. Non importa se sei in mappa o in chat ma diventi invisibile e in più, il frame presenti, continua a segnalare le persone come se si bloccasse, per poi farle scomparire.
C'è un modo per forzare il refresh soltanto nel frame presenti? ho cercato le varie soluzioni qui nel forum ma sembra che la faccenda sia rimasta irrisolta. Idee su come ovviare a questo fastidioso problema piuttosto comune in GDRCD?
03/11/2019 10:43:18
Nel file presenti.inc.php c'è una stringa, più o meno all'inizio, sul refresh della propria presenza nel determinato luogo; nel momento in cui rimuovi quella pagina dalla main page, o anche solo quella stringa, hai questo genere di problema. (Forse!)
presenti.inc.php si trova nella main page o è stato rimosso? La stringa è al suo posto?
03/11/2019 11:06:25 e modificato da staff shadowland il 03/11/2019 11:07:31
Grazie per l'intervento! L'unica cosa sostanziale che ho eliminato dalla pagina dei presenti, è la possibilità di vedere utenti entrati ed usciti poiché non mi interessava visualizzarli.
Per il resto ho aggiunto delle icone accanto ai nomi dei pg e spostato in alto il conteggio dei presenti, ma per lo più il codice è rimasto quasi del tutto quello originale (almeno che io ricordi)
Nella mia pagina presenti visualizzo:
<?php include('../ref_header.inc.php'); /*Header comune*/ ?>
<!-- Box presenti-->
<div class="pagina_presenti">
<?php
//Refresh presenza.
if (isset($_REQUEST['disponibile'])===TRUE){
$query = "UPDATE personaggio SET ultimo_refresh = NOW(), disponibile=".gdrcd_filter('num',$_REQUEST['disponibile'])." WHERE nome = '".$_SESSION['login']."'";
} elseif (isset($_REQUEST['icona1'])===TRUE){
$query = "UPDATE personaggio SET ultimo_refresh = NOW(), icona1=".gdrcd_filter('num',$_REQUEST['icona1'])." WHERE nome = '".$_SESSION['login']."'";
} elseif (isset($_REQUEST['invisibile'])&&($_SESSION['permessi']>=ADMIN)){
$query = "UPDATE personaggio SET ultimo_refresh = NOW(), is_invisible=".gdrcd_filter('num',$_REQUEST['invisibile'])." WHERE nome = '".$_SESSION['login']."'";
} else {
$query = "UPDATE personaggio SET ultimo_refresh = NOW() WHERE nome = '".$_SESSION['login']."'";
}
gdrcd_query($query);
echo '<div class="elenco_presenti">';
// Conteggio i presenti.
$record = gdrcd_query("SELECT COUNT(*) AS numero FROM personaggio WHERE (personaggio.ora_entrata > personaggio.ora_uscita AND DATE_ADD(personaggio.ultimo_refresh, INTERVAL 1 MINUTE) > NOW())");
//numero utenti presenti.
echo '<div class="link_presenti"><a href="javascript:parent.modalWindow(\'presenti\', \'Presenti Estesi\', \'../popup.php?page=presenti_estesi\', \'400\', \'550\')" title="Lista Online - Clicca per accedere">';
if ($record['numero']==1){
echo '<div class="page_title"><h2> '.$record['numero'].' '.gdrcd_filter('out',$PARAMETERS['names']['users_name']['sing']).' '.gdrcd_filter('out',$MESSAGE['interface']['logged_users']['sing']).'</h2></div>';
} else {
echo '<div class="page_title"><h2 class="presenti_title"> '.gdrcd_filter('out',$PARAMETERS['names']['users_name']['plur']).' '.gdrcd_filter('out',$MESSAGE['interface']['logged_users']['plur']).' '.$record['numero'].'</h2></div>';
}
echo '</a></div>';
//Carico la lista presenti (In luogo).
/** * Fix della query per includere l'uso dell'orario di uscita per capire istantaneamente quando il pg non è più connesso
* @author Blancks
*/
$query = "SELECT personaggio.nome, personaggio.cognome, personaggio.icona1, personaggio.url_img_chat, personaggio.permessi, personaggio.sesso, personaggio.id_razza, razza.sing_m, razza.sing_f, razza.icon, personaggio.disponibile, personaggio.is_invisible, mappa.stanza_apparente, mappa.nome as luogo FROM personaggio LEFT JOIN mappa ON personaggio.ultimo_luogo = mappa.id LEFT JOIN razza ON personaggio.id_razza = razza.id_razza WHERE (personaggio.ora_entrata > personaggio.ora_uscita AND DATE_ADD(personaggio.ultimo_refresh, INTERVAL 1 MINUTE) > NOW()) AND personaggio.ultimo_luogo = ".$_SESSION['luogo']." AND personaggio.ultima_mappa= ".$_SESSION['mappa']." ORDER BY personaggio.is_invisible, personaggio.ultimo_luogo, personaggio.nome";
$result = gdrcd_query($query, 'result');
$ultimo_luogo_corrente='';
while ($record = gdrcd_query($result, 'fetch')){
if (empty ($record['stanza_apparente'])===TRUE){$luogo_corrente = $record['luogo'];}
else {$luogo_corrente = $record['stanza_apparente'];}
if (empty($luogo_corrente)===TRUE){
if ($record['mappa']>=0){
$luogo_corrente = $PARAMETERS['names']['maps_location'];}
else{$luogo_corrente = $PARAMETERS['names']['base_location'];}
} //if
//Stampo il PG
if(($record['is_invisible']==0)||($record['nome']==$_SESSION['login'])){
echo '<div class="presente">';
switch ($record['permessi']){
Possibile che nell'eseguire le modifiche ho dimenticato qualcosa o commesso qualche errore?
03/11/2019 11:52:55
La prima parte, quella con //refresh presenza, è quella a cui mi riferisco.
Vedo che qualche modifica l'hai fatta, con quel discordo dell'icona, fai qualche prova ripristinando, almeno in quella porzione, il codice originario e vedi se ci sono differenze.
In caso ci fossero, hai trovato il problema, altrimenti buona fortuna :D
03/11/2019 12:55:15 e modificato da mr_jakhal il 03/11/2019 12:55:33
staff shadowland ha scritto:
C'è un modo per forzare il refresh soltanto nel frame presenti? ho cercato le varie soluzioni qui nel forum ma sembra che la faccenda sia rimasta irrisolta. Idee su come ovviare a questo fastidioso problema piuttosto comune in GDRCD?
Forse ho frainteso la domanda precedentemente;
se il tuo frame presenti non si autorefresha allora è normale che non vengano visualizzati correttamente i personaggi online.
Di base l'autorefresh è impostato a 30 secondi mi pare, si trova in frame_presenti.inc.php, se non hai spostato e cambiato nulla in quella parte non dovrebbero esserci problemi, altrimenti controlla quella porzione.
05/11/2019 17:04:21
Purtroppo nulla di fatto, il problema persiste :/
03/12/2019 10:44:02
Edito perchè ho risolto ripristinando la Land a diverso tempo fa. Non so a cosa sia dovuto il problema ma sostituendo le pagine principali è tornato tutto nella norma, forse una chiusura errata del frame o qualche pagina mal impostata mi bloccava la colonna laterale dei presenti.
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
World of Warship ↗
Fallen Gods ↗
Cafuné ↗
State of Survival ↗
Seconda Era ↗
Foundation Galactic Frontier ↗
The Coven ↗
Tiles Survive ↗