[Città virtuale GPL]Utenti appesi: mobbasta! postato il 16/11/2008 16:35:37 nel forum programmazione, gdrcd, open source, hosting e modificato da armonica il 16/11/2008 16:39:47
Premessa: pur avendo messo in piedi Manaus, non sono un programmatore. Conosco il linguaggio html, mentre di php sono riuscito (con una grossa mano da parte di alcuni di voi, vero Xen?) giusto ad imparare ciò che mi serviva per adattare la land alle mie esigenze.
Chi utilizza il codice di Traimo si è di certo scontrato col problema degli utenti appesi in caso di logout non corretto: accade in pratica che chi esce chiudendo la finestra del browser, anzichè usando il tasto "esci", rimanga permanentemente nella lista degli online.
Un bug da poco, che rende ancora più frustrante il fatto di non riuscire a risolverlo. So che il problema è stato già oggetto di discussione in passato: per non ricorrere ogni volta al comando "do_sblocca", vi è chi ha suggerito di ricorrere ai popups, e chi di inserire una nuova voce nel database per eliminare la questione.
Tuttavia, ad un non-addetto-ai-lavori come me, pare impossibile che la cosa non possa essere risolta semplicemente modificando la pagina "do_login.php" (la posto qui sotto:è praticamente identica a quella dell'OS originale).
Pagine → 1
16/11/2008 17:15:25
non conosco gpl, quindi non sono in grado di fornirti una "stringa risolutrice", ma posso fornirti la teoria necessaria per farti superare questo problema.
Anzitutto devi creare un campo datetime nel db nella tabella dei presenti (non so com'è fatto il db, ma nel mio ho creato una tabella dei presenti).
poi crei una pagina in cui fai l'update di questo campo (lo chiamo refresh):
$Sql = "UPDATE presenti SET refresh = NOW() WHERE nome = '".$_SESSION['sessione relativa a chi fa il login']."'";
mysql_query($Sql);
e nella stessa pagina fai un controllo del genere:
$Sql = "DELETE FROM presenti WHERE DATE_ADD(refresh, INTERVAL 1 MINUTE) < NOW()";
mysql_query($Sql);
Tale pagina la includi in un'altra pagina che si refresha abbastanza spesso (io ad esempio ce l'ho inclusa nella pagina che aggiorna le missive).
In sintesi il codice va a modificare il campo "refresh" (tipo datetime), creato nella tabella dei presenti, inserendovi la data del momento in cui la pagina si aggiorna. Se un personaggio esce premendo la X in alto a destra, tale campo non verrà aggiornato. Così nel momento in cui tale pagina verrà nuovamente aggiornata da qualunque pg connesso, il personaggio suddetto sarà tolto dai presenti.
17/11/2008 14:01:43
Io risolsi appunto con il campo VER_ONLINE che c'è nella tabella ONLINE.
In refresh.php ho aggiunto una query che seleziona questo dato per tutti gli on-line. Poi cicla tutto facendo la sottrazione tra il time attuale e il dato preso da db. Se è minore maggiore di 120 cancella quell'utente dal db altrimenti gli aggiorna il campo VER_ONLINE con il time attuale. Aggiungendo un controllo simile anche al login anche se l'ultima persona ad uscire dovesse rimanere appesa e fosse la prima a rientrare si troverebbe già sbloccato.
17/11/2008 14:50:29
Perchè non creare una bella patch??
17/11/2008 15:24:31
17/11/2008 19:13:12
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
I dati del generatore di rank sono stati aggiornati!
Midian Realms: Inizio fase di test
Ikariam → Su una piccola isola, in qualche parte del Mediterraneo, sorge un`antica civiltà. Sotto la tua guida inizia un`era di ricchezza e di scoperte!
Il gestore di Il Grande Blu ha risposto alla recensione di spike92
Felix Felicis GdR - Harry Potter GdR: La Resistenza?
venus dormiens ha aperto un annuncio di ricerca: Origo Haeredis - Harry Potter Gdr ricerca Giocatore
Metin2: Server Boost Yohara – Dettagli e FAQ
Entropia Universe → Lascia che il tuo avatar esplori nuovi mondi e viaggi tra i pianeti in questo stupendo MmoRpg Sci-Fi Free to Play!
Sea of Conquest: Ci dai una mano ai #PocketGamer Awards 2024?
goldaries ha recensito Games of Thrones Winter is Coming
spike92 ha recensito Il Grande Blu
World of Warship: Aggiornamento 13.11: anteprima
Game of Thrones → Pronto a diventare il Signore dei Sette Regni? Guida la tua grande casata in epiche battaglie PvP ed esplora il mondo di Westeros!
gdr-online.com ha risposto alla discussione: Parere su BrowserGame
W40K Dathyar: Specializzazioni
NosTale: Ora nel NosMall: dolcissimi mini-pet
DarkOrbit: Aggiorna la scatola dell'Apocalisse!
Game of Thrones → Pronto a diventare il Signore dei Sette Regni? Guida la tua grande casata in epiche battaglie PvP ed esplora il mondo di Westeros!
Statistiche Tecniche 2022 - Gdr-online.com pubblica i dati tecnici dei suoi visitatori per l'anno 2022!
Giochi Harry Potter - Lista completa dei giochi di ruolo online ambientati nel mondo di Harry Potter
New Black Gold - Intervista al gestore di New Black Gold, il play by chat cyberpunk!
Giochi Star Trek - Lista completa dei giochi di ruolo online ambientati nel mondo di Star Trek
Pirats - Recensione del GDR Pirats.. tesori.. pirati.. arrembaggi!
Letteratura Anglo-Americana - Immagini dell’altro nella letteratura anglo-americana, da Thoreau a Harry Potter. Un viaggio