Altervista passa a PHP 8.0
Altervista passa a PHP 8.0 postato il 13/03/2026 10:05:07 nel forum programmazione, open source e hosting e modificato da gdr-online.com il 13/03/2026 10:13:23
Buongiorno ragazzi!Scusatemi il disturbo ma sono per natura fortunata °ehm°. Sono in apertura per un nuovo gioco di ruolo che volevo inserire sul portale tra oggi e domani. Mi è giunta la vivace notizia da Altervista che - per ragioni di sicurezza - il portale disattiverà le versioni di PHP antecedenti alla 8. In particolare io ho usato la 7.3 per la costruzione del sito che verrà disattivata il 12 maggio! C'è tempo ma mi porto un momento avanti che se riesco a risolvere prima è meglio. Il mio problema è solo uno ed è lui che non so perché non mi gira con la versione 8. E' strano perché ci sono mille fetch_array e anche mysqli quindi non capisco perché solo questo pezzo non mi va, se cambio versione. Mi rendo conto che c'è tempo però capitemi che la notizia, proprio oggi, mi ha un attimo fatta impallidire °poor elenchino presenti (quello piccino, non quello esteso) RIP°: dobbiamo salvarlo (?)Una zampa, uomini e donne più navigate di me, avete idea di che sia? ❤️
//Fatal error: Uncaught TypeError: mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, null given in /membri/demonhanta/includes/functions.inc.php:122Stack trace:#0 /membri/demonhanta/includes/functions.inc.php(122): mysqli_fetch_array(NULL, 3)#1 /membri/demonhanta/pages/presenti.inc.php(25): gdrcd_query(NULL, 'fetch')#2 {main} thrown in /membri/demonhanta/includes/functions.inc.php on line 122
13/03/2026 10:18:26 e modificato da brom87 il 13/03/2026 10:20:08
In PHP 8, passare un valore null a una funzione che si aspetta un oggetto (come mysqli_fetch_array) causa un Fatal Error che blocca tutto.Le vecchie versioni erano più permissive e in caso di errori comunque proseguiva con le operazioni semplicemente ignorandole. PHP 8 e successive invece sono molto più rigide, anche per ragioni di sicurezza che lo rendono più stabile rispetto alle vecchie versioni, e logga tutti gli errori. Quindi dovresti fare debug per controllare la query che viene eseguita in quel punto, copiarla a database e vedere se effettivamente passa qualcosa.Alternativa, prima di richiamare mysqli_fetch_array metti una condizione if(!empty($result))
13/03/2026 10:25:32
A parte che hai probabilmente spoilerato l'URL del gioco... :PIl messaggio di errore indica che la funzione mysqli_fetch_array() sta ricevendo un valore NULL invece di un oggetto contenente i risultati di una query. In pratica, stai cercando di leggere dei dati da una query che non è stata eseguita correttamente o che ha restituito un errore.Ispeziona presenti.inc.php alla riga 25. Apri il file /pages/presenti.inc.php e guarda cosa succede alla riga 25. Probabilmente troverai qualcosa di simile a:$res = gdrcd_query($result, 'fetch');Verifica che $result sia stato effettivamente popolato da una chiamata precedente, ad esempio: $result = gdrcd_query("SELECT ... FROM ...");
13/03/2026 11:38:46
puoi anche intervenire direttamente in gdrcd_query() con:
if ($sql instanceof mysqli_result) { $row = mysqli_fetch_array($sql, MYSQLI_BOTH);} else { $row = null; //se preferisci un array vuoto puoi sostituire a null array()}
stessa cosa andrebbe fatta anche qui:case 'SELECT': $result = mysqli_query($db_link, $sql)or die(gdrcd_mysql_error($sql)); $row = mysqli_fetch_array($result, MYSQLI_BOTH); mysqli_free_result($result); return $row;break;
facendola diventarecase 'SELECT': $result = mysqli_query($db_link, $sql)or die(gdrcd_mysql_error($sql)); $row = mysqli_fetch_array($result, MYSQLI_BOTH); if ($result instanceof mysqli_result) { $row = mysqli_fetch_array($result, MYSQLI_BOTH); } else { $row = null; //se preferisci un array vuoto puoi sostituire a null array() } mysqli_free_result($result); return $row;break;
13/03/2026 11:53:23
Giusto per amor della curiosità: che versione di GDRCD stai usando?
13/03/2026 21:09:40
Non pensavo di riuscire a risolvere in giornata.
14/03/2026 11:01:05 e modificato da anneth il 14/03/2026 12:42:30
demonhantagdr ha scritto: Non Lo notifico nel caso anche altri vedessero questo problema, una volta passati alla versione 8PHP! ❤️ Anneth io ho lavorato su un GDRCD 5.6!
Siccome ricordo di aver testato la 5.6 con il php 8.2 per renderla compatibile.. stai usando l'ultima della 5.6 con PHP 8.2 o PHP 8.4? Giusto per capire, perché eventualmente facciamo un po' di debug con la prossima releaseTe lo dico perchè sul mio sito di test https://gdrcdanneth.altervista.org/ ho php 8.2 e GDRCD 5.6.0.6, che non ha problemi. Se hai messo php 8.4, ti direi di provare ad abbassare alla 8.2
14/03/2026 21:34:19
Guarda, cara, sì!Sto usando proprio la 5.6.0.6 con PHP8 (non ho provato la 8.2 né la 8.4). Magari era un BUG e basta che è diventato evidente cambiando versione?Così come ti ho scritto ho proprio risolto. Considera a me proprio l'elenco presti svaniva e veniva sostituito dal messaggio di errore quindi non è qualcosa di cui puoi non accorgerti. Se da te gira, evidentemente sono io che devo aver toccato qualcosa che non mi ha più letto con il passaggio a PHP8. Però ecco se magari, durante il passaggio, c'è qualcun altro che incontra il mio stesso problema, può fartelo presente rispondendo a questa discussione! In questo modo puoi verificare meglio se è un problema solo mio (cioè se nessuno ci dice che ha avuto lo stesso errore è sicuramente così haha) oppure è il caso di rilasciare una fix alla 5.6.0.6. ❤️
15/03/2026 00:31:15
Ti chiedevo la versione di PHP proprio per capire il contesto.La 5.6.0.6 è stata testata con PHP 8.2 prima del rilascio, quindi in quella configurazione non richiede alcuna fix. Il supporto a PHP 8 era già stato introdotto nella 5.6.0.5.Su PHP 8.4 invece non posso garantire la compatibilità perché è uscito successivamente all'ultima release di GDRCD 5.6.0.6. Con le minor release di PHP spesso vengono introdotte modifiche o deprecazioni che possono generare comportamenti inattesi.Per questo ti chiedevo quale versione stai utilizzando (8.0, 8.2, 8.4): aiuta a capire se il problema è legato all'ambiente oppure a qualche modifica locale.In ogni caso, se altri utenti dovessero riscontrare lo stesso comportamento con una configurazione simile, sarà utile segnalarlo così possiamo verificare più facilmente.
15/03/2026 18:44:10
Chiarissimo, cara!Io giro proprio sulla 8.0 e ho riscontrato questo errore ❤️
18/03/2026 17:01:23
Volevo segnalare che con la versione di gdrcd 5.6.0.5 si presenta il medesimo errore se si passa alla versione 8.0 di php.
Discussione seguita da
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!