27/09/2014 21:43:02 e modificato da gdr-online.com il 14/10/2020 08:12:20
28/09/2014 01:02:42
Spiegazioni chiarissime, grazie davvero! ho impostato il codice sostituendo gli apici e riporto l'esito :-)
inizialmente mi ha dato un errore di sintassi e quindi ho tolto l'ultima parentesi graffa, quindi ho visualizzato il tutto correttamente. Si può inserire la pass, se è sbagliata lo spazio ritorna bianco semplicemente, se è corretta si passa allo step successivo, ossia si ricarica la pagina e c'è il link Prosegui oltre.
Cliccando su Prosegui Oltre mi rimanda alla chat privata che ora visualizzo benissimo, preciso che ho dovuto impostare un proprietario fisso, nel nostro caso un pg di Gestione, altrimenti continuava a rimandarmi alla pagina con l'inserimento della pass.
L'unico problemino l'ho trovato qui:
GDRCD MySQLi Error [File: frame_chat.inc.php; Line: 38]
Error Code: 1064
Error String: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server
version for the right syntax to use near 'affected' at line 1
Error Detail: affected
per farlo sparire ho tolto questa riga di codice qui:
28/09/2014 19:35:29
29/09/2014 12:44:41
Reintegrata la parte di codice corretta e va tutto alla grande! :-)
Riguardo all'elenco invitati effettivamente che un pg possa rientrare sempre nella chat di cui la prima volta ha dimostrato di conoscere la parola d'ordine, finchè non viene cambiata, è logico anche secondo me, ma da quanto ho inteso parlando con alcuni utenti della land sembra che questo passaggio di dover inserire la parola d'ordine ogni volta renda molto l'ambientazione, non so come spiegarlo, fa una certa scena insomma :-) E ne sono contenta perchè era proprio l'effetto che volevamo ottenere.
Quindi mi sono scervellata per tentare di capire come svuotare questo elenco invitati, la tua soluzione di togliere il nome del pg dall'elenco nel momento in cui effettua il logout è perfetta, ma non so come impostare il codice, o quantomeno la parte iniziale del codice, quella in cui si inserisce la clausola del "se il tal pg è uscito", perchè la seconda parte suppongo mi basti copiarla dal "caccia", quindi risettando l'elenco invitati senza il nome del pg che ha effettuato il logout (fermami se dico follie, please!) e qui confido nel tuo, ennesimo, aiuto...
Ho azzardato qualche altro tentativo, quindi impostando un orario in cui l'elenco invitati si dovrebbe svuotare per esempio, ma pur riuscendo a creare un codice sintatticamente corretto non dava effetti e anche se li avesse dati sarei rimasta soddisfatta per metà, perchè sarebbe stata una soluzione decisamente un pò "arrabattata"!
29/09/2014 21:37:28
Si tratta di studiare per bene una richiesta al database che:
a) Trovi tutte le stanze in cui è presente il nome del personaggio come invitato.
b) Aggiorni la lista invitati di ognuno di quei record rimuovendo il nome del personaggio che sta effettuando il logout.
Per trovare tutte le righe coinvolte in cui c'è il nickname del personaggio che sta effettuando il logout dobbiamo ricorrere ad una ricerca per pattern tramite l'operatore LIKE http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like, al fine di trovare tutte quelle liste dove il contenuto parziale corrisponde a nomepersonaggio,.
La virgola viene aggiunta da gdrcd per separare la lista di nomi ed è utile includerla a nostra volta nella ricerca per evitare di trovare false corrispondenze (Ad esempio se un personaggio si chiama Sam e un altro Samuel, la ricerca di Sam troverebbe anche le righe di Samuel se non usassimo la virgola a definire la fine del nickname).
Di conseguenza sappiamo già come impostare la nostra clausola WHERE adesso:
29/09/2014 23:21:52
Appena finite tutte le prove del codice, innanzitutto grazie mille per la tua disponibilità, non solo nella formulazione del codice ma anche, e soprattutto, per non averlo postato e basta ma per il tuo gentilissimo intento di farmi capire come ci sei arrivato a quella stringa conclusiva. :-)
Sinceramente io non avrei mai potuto farla da me, ma quantomeno colgo l'occasione per tentare di capire qualcosina in più!
Riguardo all'esito delle prove... il codice l'ho inserito e fa delle cose ma in modo originale diciamo :-)
In sostanza invece di cancellare il nome del pg nel momento in cui fa il logout, lo cancella nel momento in cui un altro pg inserisce la password ed entra nella chat.
Sostanzialmente il primo pg non vede differenze, può continuare a scrivere ma se fa un Aggiorna o esce dalla chat, pur senza lasciare la land, viene chiuso fuori.
Se invece qualcuno presente nella lista invitati fa il logout non viene tolto dall'elenco.
Giusto per essere certi che non abbia dimenticato di inserire nulla nel codice, dovevo mettere solo quella stringa giusto? o impostare altro?
29/09/2014 23:35:34
La mentalità alla base dell'open source si può riassumere in tre parole chiave: cooperazione, condivisione e conoscenza.
Da parte mia cerco sempre di formulare interventi che mirino ad insegnare a chi non sa e mi fa piacere che tu abbia trovato il topic utile non soltanto al raggiungimento del tuo scopo ;-)
Quanto alla query non le va associato nessun controllo in quanto se il personaggio non risulta invitato in nessuna chat non verrà aggiornata nessuna riga.
Il problema che hai descritto mi perplime un pochino e mi porta a chiederti se hai copiato il pezzo di codice soltanto nel file logout.php (come dovrebbe essere) o anche in altri posti.
Il file di logout non viene chiamato accidentalmente: se lo visiti esci dal sito quindi mi suona strano che la query intervenga a modo suo, in caso controlla se nelle varie prove che hai fatto hai lasciato qualche rimasuglio di codice che potrebbe portarti al comportamento strano che hai esposto.
30/09/2014 00:06:29
oh mannaggia, io mica l'ho messo nel logout.php, l'ho messo da tutt'altra parte!! ho infilato quella stringa di codice in frame_chat..
scusami, ora è in logout, precisamente sotto la tua modifica per aggiornare l'ora di uscita di un pg, quasi all'inizio insomma.
Ma ancora mi dà quel problema, se entra un pg l'altro viene cancellato.
se può servire qualche dettaglio più preciso per capire l'inghippo dimmi cosa controllare :-)
30/09/2014 00:24:32
Nella pagina precedente ti ho fatto scrivere questo pezzo di codice nel frame_chat:
30/09/2014 14:08:44
Buongiorno, ho inserito il nuovo codice e purtroppo non ci sono state variazioni, ma dopo diverse prove credo di aver trovato l’inghippo. In sostanza il comando funziona, tranne che per gli ultimi arrivati, nel senso che se in un elenco ci sono 3 nomi chi e' entrato per primo e chi e' entrato per secondo viene cancellato dalla lista nel momento del logout, chi e' entrato per ultimo no.
Alla buona ho fatto una prova, direttamente sul Database ho messo una virgola dopo l’ultimo nome in elenco e così anche quel pg e' stato cancellato dall’elenco al suo logout, con il problema però che a quel punto in elenco era rimasta solo una virgola che ha bloccato l’accesso a chi tentava di inserire la pass. La prova però mi ha fatto immaginare che magari si potrebbe ovviare al problema modificando questa parte
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Planethos GdR: Una nuova profezia
Metin2: Informazioni sul server migliorate
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, diventa quello che hai sempre cercato.
Age of Crystals: Rallentamenti estivi
dbzgdr ha risposto alla discussione: Dragon Ball Z Gdr
Titan Revenge: Calendario eventi fino a fine mese online!
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
Enlisted: Modifiche al sistema di aggiornamento
pyro72 ha aperto un annuncio di ricerca: World Without Heroes ricerca Giocatore
World Without Heroes: News GDR: Pubblicazione e Nuovo Inizio
Crossout → Tuffati nel mondo di Crossout, il gioco MMO d'azione post apocalittico! Costruisci le tue speciali macchine da combattimento!
I dati del generatore di rank sono stati aggiornati!
Il gestore di Nexi Generation ha risposto alla recensione di deanna
Brightest Star: Che (dis)grazia questo campeggio!
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, diventa quello che hai sempre cercato.
SID - Intervista a Nyden gestore del GdR fantasy SID
CRSED: F.O.A.D. - Brutale sparatutto MMO in cui vince l'ultimo giocatore che resta in vita nell'arena! Ogni giocatore sarà accompagnato da armi realistiche e magie!
Forgotten Kingdom - Intervista al gestore di Forgotten Kingdom, play by chat fantasy mitologico!
Giochi di Zombie - Immergiti in mondi devastati da orde di zombie e fai di tutto per sopravvivere!
Kyudo - Gli otto movimenti del Kyudo... l'arte Giapponese dell'arco!
Arcana Domine - LARP Isola dei Dannati: il GDR ad altissima risoluzione!