Refreh onclick non funzionante postato il 25/08/2018 20:14:18 nel forum programmazione, gdrcd, open source, hosting
Sera a tutti!
Stavo lavorando oggi su una modifica sostanziale al sistema di spesa punti esperienza di gdrcd per l'acquisto delle abilità,nel concreto cancellando quasi tutto il form pre-esistente per riscriverlo con un form ad input in php che si compone di un piccolo input type submit che una volta cliccato esegue una query mysqli aggiornando il database ed aggiungendo un punto alla abilità interessata.Tutto questo a patto che il check svolto da una if condition confermi che ci sono abbastanza punti esperienza per livellare la skill
FIn qui tutto bene:il form funziona e fila liscissimo, il problema sorge però dopo aver cliccato:infatti fino a che non si clicca una seconda volta sul submit la schermata, almeno in lato client, non si aggiorna il che è un problema, visto che in questa maniera si ha a disposizione un click extra che elude il check svolto dalla if e di cui i furbetti potrebbero approfittare.
Ho già provato ad agire usando una funzione javascript onclick sul submit(in particolare location.refresh(true),location.refresh(false), window.location.refresh(true) e location.refresh(false))ma non ha risolto il problema, visto che di fatto la pagina sembra ricaricare, ma solo in alcune sue parti(elenco presenti, messaggi etc etc) che ovviamente non includono il centro della pagina.
Qualcuno ha qualche consiglio?
Allego qui di seguito la parte interessata del codice,se mai potesse essere utile.Non me ne vogliate se è un tantinello spaghettoso u.u
Pagine → 1
25/08/2018 20:21:27
Discussione spostata in "GDRCD e Open Source"
25/08/2018 20:44:44
Ma se invece fai un location.href o location.reload?
25/08/2018 20:52:14 e modificato da cybershadow il 25/08/2018 20:55:34
25/08/2018 23:45:55
location.href = '/nuova-pagina.html';
Questo fa un redirect alla pagina che metti tu.
26/08/2018 02:25:49 e modificato da cybershadow il 26/08/2018 02:32:33
26/08/2018 06:54:55
Ora ti basta farti una select ad inizio pagina che si calcola il valore aggiornato, così quando farai il reload della pagina dovrebbe ritrovarsi il valore nuovo e non quello vecchio.
26/08/2018 10:12:33 e modificato da cybershadow il 26/08/2018 11:13:32
26/08/2018 18:17:41
Il tuo problema non è un bug del sistema o del browser, è proprio un errore nella logica di quello che hai scritto. Quindi usare dei trucchi come "location.reload" per aggirarlo non risolverà il problema.
L'errore principale è molto semplice: il codice che aggiorna il grado della skill è posizionato in fondo alla pagina.
Dato che sia la query SELECT sia la stampa del form avvengono *prima* della query di UPDATE è ovvio che al primo submit i dati mostrati dalla pagina siano errati, dato che vengono stampati prima di venire aggiornati. Il problema non è che la pagina non si aggiorna (anzi la pagina di aggiorna perfettamente) è che gli stai facendo stampare delle informazioni vecchie.
Sposta la query di update fuori dal for principale e all'inizio della pagina e vedrai che le informazioni stampate saranno giuste.
Aggiungo una cosa: il tuo if che controlla se il giocatore ha abbastanza exp da spendere puoi farlo al momento della stampa (come stai facendo), ma *DEVI* anche rifarlo prima della query di UPDATE: altrimenti un giocatore che vuole fregarti potrebbe sempre fare F5 e aggiungersi tutti i gradi che vuole.
26/08/2018 18:50:36
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
Origo Haeredis - Harry Potter Gdr: Aggiunta: Prova di gioco
wylly93 ha recensito The Eyrie GdR
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!
Metin2: Doppio evento: Caccia al tesoro e Altromondo!
eXtremelot: Navigare o... Volare?? :-)
Games of Thrones Winter is Coming: Playoff dell'assedio di Grande Inverno
I dati del generatore di rank sono stati aggiornati!
Pirates of the Caribbean → Parti per un'avventura con Jack Sparrow, Will Turner, il Capitano Barbossa e altri spadaccini del franchise cinematografico Pirati dei Caraibi!
Legacy of Magic: Gli Elementi Oscuri - La Nera Signora dell'Acqua
Il gestore di W40K Dathyar ha risposto alla recensione di dreamboy
dreamboy ha recensito W40K Dathyar
Entropia Universe → Lascia che il tuo avatar esplori nuovi mondi e viaggi tra i pianeti in questo stupendo MmoRpg Sci-Fi Free to Play!
Metin2: Live ora: Server Boost Yohara e Twitch Drop
Epic Wizardry RP: Changelog N. 4 - Epic Wizardry Rp
drongo ha recensito Il Grande Blu
Pirates of the Caribbean: Tides of War: Quarti di finale del torneo
War Thunder → Aviazione, veicoli corazzati e flotte militari della seconda guerra mondiale. Parteciperai a tutte le principali battaglie!
Twilight Gdr - Con l'uscita del film New Moon.. intervista ai gestori di Twlight Gdr!
MmoRpg Vs. GdR - Interpretazione intima o interpretazione massiva? MmoRpg Vs. GdR!
Giochi Fairy Tail - Lista completa dei giochi di ruolo online ambientati nel mondo di Fairy Tail
Fervm - Intervista a Claudio creatore del play by chat ambientato nell'Antica Roma... Fervm!
Guida Nuovi Giocatori - Guida per i nuovi giocatori: come iniziare nel complicato mondo del GdR Online!
Star Trek Equilibrium - Intervista al founder del play by forum Star Trek Equilibrium!