RISOLTO [GDRCD 5.5.1] Messaggi globali
RISOLTO [GDRCD 5.5.1] Messaggi globali postato il 29/07/2021 11:46:07 nel forum programmazione, open source e hosting e modificato da nobara il 29/07/2021 13:09:35
Buongiorno!
Ho provato a spulciare nel forum, ma non ho trovato nulla riguardo il problema che mi affligge quest'oggi. Se così non fosse, mi scuso in anticipo e ringrazio chi mi segnalerà la discussione corretta.
Quando cerco di inviare un messaggio globale, ovvero rivolto a tutta l'utenza della land, selezionando dal menù a tendina il comando corretto, il sistema ri restituisce questo errore:
Fatal error: Cannot use object of type mysqli_result as array in /membri/blablabla/pages/messages/send_message.inc.php on line 42
Andando alla riga incriminata, non riesco a capire da che cosa venga il problema. Ho caricato anche il file originale del gdrcd, ma manda sempre lo stesso errore alla stessa riga. Per completezza, posto il codice originale, non modificato da me, così da capire meglio quale sia il problema effettivo.
$personaggio = gdrcd_query("SELECT * FROM personaggio where nome = '" . $_SESSION['login'] . "'", 'result');
if($personaggio['permessi'] >= MODERATOR) {
Grazie in anticipo per l'aiuto!
Pagine → 1
29/07/2021 12:00:54
mathramstaff ha scritto:
Ho fatto entrambe le prove con utenze SUPERUSER.
Per scrupolo, ho caricato direttamente il pacchetto 5.5.1 su un account altervista di prova e ho usato l'utenza Super.
Era la prima cosa che ho controllato, in realtà, ma grazie per il suggerimento!
29/07/2021 12:08:20 e modificato da nobara il 29/07/2021 13:09:56
mathramstaff ha scritto:
Hai fatto bene a evidenziare che potesse essere quello il problema, ci mancherebbe! Qualcuno potrebbe averlo avuto, ma in altre circostanze, quindi non credo che andrà sprecato come suggerimento, anche se non per il 'mio' problema specifico.
Grazie di nuovo!
29/07/2021 12:26:17
Magari non centra niente, ma tentar...
per caso hai qualche utente che nel nick ha l'apostrofo?
Tipo O'Brien cose così?
A me quello script causava problemi perché un user si era registrato con apostrofo nel nick, ripeto, magari non centra niente.
29/07/2021 13:00:24 e modificato da kasa il 29/07/2021 13:03:22
nobara ha scritto: ...
In base al tuo errore, ho deciso di effettuare qualche verifica direttamente sulla versione vanilla di GDRCD#5.5.1 e ho notato fin da subito che questa anomalia è presente anche lì.
Analizzando il file pages/messages/send_message.inc.php, ho notato che la riga che ti da errore, per intenderci questa
if($personaggio['permessi'] >= MODERATOR) {
si basa sul risultato che viene dato alla variabile $personaggio, definizione che viene data poso sopra in questo passaggio specifico:
$personaggio = gdrcd_query("SELECT * FROM personaggio where nome = '" . $_SESSION['login'] . "'", 'result');
Il fatto è che la funzione gdrcd_query($query, 'result'); inserisce all'interno della variabile a cui viene assegnata un oggetto con i risultati in termini tecnici della query nel primo parametro della funzione, ossia se è andata a buon fine, il numero delle righe evidenziate e tutti altri parametri che non compongono poi, nell'effettivo, quello che siamo andati a cercare con la SELECT.
Quindi, chiaramente, se noi andiamo ad utilizzare $personaggio come array per vedere cosa c'è dentro a permessi, ci verrà dato indietro l'errore che questa variabile non è un array ma è altro (appunto, una derivazione di mysqli_result()).
Per poter risolvere il problema è sufficiente rimuovere il parametro 'result' dalla funzione, in modo da utilizzare quello di default per gdrcd_query() che è query ed ottenere i valori cercati nella SELECT. Così tutto torna a funzionare.
Per intenderci, va sostituita questa riga:
$personaggio = gdrcd_query("SELECT * FROM personaggio where nome = '" . $_SESSION['login'] . "'", 'result');
così:
$personaggio = gdrcd_query("SELECT * FROM personaggio where nome = '" . $_SESSION['login'] . "'");
Se l'errore rientra, metto la modifica anche nella nuova versione di GDRCD così chi verrà dopo non si ritroverà questo errore.
Kasa.
29/07/2021 13:01:16
haruka ha scritto:
No, nessuno ha questo inconveniente nel Nome PG.
Lo stesso identico errore me lo dà sia sul codice "modificato" della land principale, che su quello originale della versione 5.5.1 che ho installato su un altro account per fare una prova coi file privi di modifiche.
29/07/2021 13:07:03
kasa ha scritto:
Esatto, era proprio quello l'inghippo!
Ora i messaggi globali funzionano da dio.
Grazie mille @kasa per l'aiuto, sei sempre gentilissimo!
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 the Sea Battle ↗
State of Survival ↗
Seconda Era ↗
Hero Wars ↗
World of Warship ↗
Cafuné ↗