Controllo su ultima entry in DB postato il 10/01/2017 17:43:38 nel forum programmazione, gdrcd, open source, hosting e modificato da gdr-online.com il 10/01/2017 17:47:00
Buonasera,
scrivo perché vorrei sapere come impostereste un controllo sull'ultima immissione fatta in DB...
Nello specifico, vorrei fare un controllo sull'ultima entry in DB, nella Tabella 'Chat'.
L'idea (che potrebbe tornare utile anche ad altri) è quella di creare un "if" che impedisca allo stesso utente di mandare la stessa frase in chat più di una volta.
Questo per evitare il problema dei multipli invii in chat dovuti a:
- Problemi di linea (che causano il reinseriment della stessa frase 5 volte di seguito XD)
- Problemi di refresh esagerati (chi preme f5 ogni 2 secondi XD)
- Disturbatori (che inviano la stessa frase, magari anche offensiva, in chat, tanto per dare fastidio)
Il controllo quindi dovrebbe verificare se:
La frase inviata in chat dall'utente X è la stessa frase inviata dallo stesso utente nell'ultima azione inviata in chat.
Quindi, a parole:
Pagine → 1
10/01/2017 20:50:51 e modificato da dyrr il 10/01/2017 20:53:56
Per i primi due casi citati più che un controllo sull'ultima azione inviata dal giocatore nel database imposterei il form con un token di controllo.
Qui puoi trovare un esempio dettagliato di cosa intendo: https://css-tricks.com/serious-form-security/ https://css-tricks.com/serious-form-security/ ma puoi trovarne molti altri cercando fon form token o crsf token.
In pratica il concetto è questo come flusso:
Viene generato un token univoco con php
Viene salvato sia in sessione sia in un campo hidden del form.
Quando il form viene inviato viene fatto un controllo se il token in sessione corrisponde al token inviato dal form, se i due corrispondono vengono effettuate le operazioni sul form, altrimenti no.
Cosa succede se il form viene inviato più volte tipo con un F5:
essendo la pagina strutturata così:
blocco di controllo
generazione del token
Laprima volta che viene inviato il form i due token corrispondono, la seconda volta il token di sessione è diverso da quello del form perchè ne è stato generato uno nuovo.
Per i disturbatori più che un contorllo sulla stessa frase, visto che potrebbero aggirare il controllo, semplicemente cambiando l'ultima lettera della frase o altro, io imposterei un controllo antiflood, ovvero che impedisca l'invio di un messaggio in chat se non è passato almeno un tot di tempo dal precedente messaggio in chat dell'autore.
Visti i tempi medi di una giocata in un play by chat, anche se imposti un controllo che un personaggio non possa inviare due messaggi di fila prima che siano passati un paio di minuti il gioco non ne dovrebbe risentire minimamente.
Fare questo controllo è abbastanza semplice, fai una query TIPO questa
12/01/2017 01:18:41
Hmm, l'idea del Token mi piace molto (molto più elegante dei mei mille "if" XD)
La soluzione del "antiflood" (a parte che mi ricorda i Flood di Halo XD) invece, sarebbe un po' "problematica" in quanto in gioco abbiamo una funzione che ci permette di inviare in chat una correzione alla frase inviata (un semplice comando che permette di inserire una frase in rosso, che rappresenta la correzione dell'errore inviato). Quindi bloccando l'invio per tot min, impedirei anche agli utenti di mandare la correzione. Inoltre in alcuni casi il master potrebbe voler inviare più dadi (per esiti separati dai vari PG) e quindi potrebbe rappresentare un problema. (ovvio, potrei creare eccezioni per il comando "Correzione" e per i "Master" e i "Dadi master", ma un eventuale disturbatore potrebbe usare anche il comando delle correzioni per dare fastidio...
Grazie mille per i consigli. Intanto tenterò di procedere con la strada Token (che risolve cmq il problema inizialmente sollevato, e principale, quello dei refresh maniacali e dei hickup XD)
Vi terrò aggiornati anche per postare l'eventuale codice funzionante per chi ne avesse/avrà bisogno.
Grazie
12/01/2017 01:52:37
puoi bloccare l'invio anche solo per l'invio di determinati tipi di azioni per tot tempo, nel senso a suo tempo quando lo avevo fatto io solo i messaggi normali erano bloccati come intervallo ad 1 minnuto di tempo minimo tra l'uno e l'altro per lo stesos utente. skill, messaggi dei master, tiri di dado invece non lo erano
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
World of Warship: Aggiornamento 13.11: anteprima
gdr-online.com ha risposto alla discussione: Parere su BrowserGame
Metin2 → Sfida i tuoi rivali a battersi con te e dimostra la tua superiorità in questo mondo fantasy!
W40K Dathyar: Specializzazioni
NosTale: Ora nel NosMall: dolcissimi mini-pet
DarkOrbit: Aggiorna la scatola dell'Apocalisse!
I dati del generatore di rank sono stati aggiornati!
Hero Wars → Costruisci la tua squadra di eroi leggendari e domina il campo di battaglia! Strategia, tattica e potenza si scontrano in questo RPG ricco di azione!
aik ha aperto una nuova discussione: Parere su BrowserGame
eXtremelot: La Bussola dei Cartografi di Lot
Dallas Black Gold: [Trama] JFK Memorial
Hero Wars: Artefatti dei Titani!
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!
bother ha recensito Never Have I Ever: Mysteries of Laconia Bay
Games of Thrones Winter is Coming: #giveaways codice regalo! 🥳
Enlisted: Migliorare e ottimizzare le ombre
Road to Hamartia: CACCIA: Sarà uno o tre?
Lineage II → Entra in uno sconfinato mondo fantasy dominato da razze in contrasto tra loro. Scatena i tuoi poteri in uno dei Mmo più famosi al mondo!
Addio Windows 7! - Microsoft termina gli aggiornamenti di sicurezza estesi di Windows 7 e 8.1!
Analisi MMOG - Giocare in rete. Analisi sociosemiotica dei Massively Multiplayer Online Game. Scarica la tesi completa..
Tipi di Videogame - I diversi tipi di giochi di ruolo per computer e console
GeoWar - Scopriamo assieme GeoWar: un Browsergame Strategico Innovativo e made in Italy!
Giochi Scolastici - Lista dei giochi ambientati all'interno di scuole, università o istituti scolastici in genere!
Intervista ToSS - Intervista ai gestori del GdR play by chat ambientato nei Forgotten Realms!