Problema ricezione missive
Problema ricezione missive postato il 31/07/2013 09:26:57 nel forum programmazione, open source e hosting
Giusto ieri sera la land Herenill è stata trasferita su un nuovo server. Il trasferimento è stato dovuto fare per un sovraccarico di dati, probabilmente dovuto a un malfunzionamento del gdr cd, anche se non ne conosciamo la causa.
Mi sono però accorta questa mattina, che la ricezione delle missive su questo nuovo host (non so se può essere una delle cause del problema) al momento in cui parte l'audio e modifica la gif delle missive per segnalare un nuovo messaggio, fa scomparire nella barra in alto del menù tutte le gif (missive incluse) ad esclusione del simbolo di mappa ed avatar.
La land è su gdr cd 5, ma sono state apportate parecchie modifiche. Come posso fare per risolvere il problema? Al momento sono senza un programmatore che possa dedicarsi ai lavori in land, ma se qualcuno potesse dirmi come aiutarmi e guidarmi nella correzione potrei metterci mano anche io.
Grazie in anticipo.
Pagine → 1
31/07/2013 10:33:49 e modificato da dyrr il 31/07/2013 10:35:45
gli altri pulsanti non scompaiono, semplicemente quando viene refreshata tamite ajax pa parte che controlla le missive vengono aggiunti due a capo dopo il bottone:
<br>
<b>Strict Standards</b>: Only variables should be passed by reference in <b>/home/herenill/public_html/online/pages/top_menu.inc.php</b> on line <b>71</b><br>
<object data="sounds/freccia.mp3" type="<br ></object>
<b>Strict Standards</b>: Only variables should be passed by reference in <b>/home/herenill/public_html/online/pages/top_menu.inc.php</b> on line <b>73</b><br />
audio/mpeg" autostart="true" style="width:1px; height:0px;">
<embed src="sounds/freccia.mp3" autostart="true" style="width:1px; height:0px;" hidden="true">
</object>
<a href="main.php?page=messages_center">
<img src="themes/herenill/imgs/menu/messaggi_n.png" class="top_bottoni" alt="Messaggi_n" title="Messaggi_n" name="n2_buttonOne"></a>
<div id="tm_Messaggi_over" class="herenill_tooltip" style="position:absolute;left:20px;top:100%;">test</div>
a causa dei due errori segnati ala riga 71 e 73 del top_menu.inc.php
Errori che a mio parere potrebbero essere dovuti a qualche configurazione del server diversa da prima, oppure controllare i vari parametri nel file di configuraizone, visto che se non è stato cambiato quel file dalla versione che ho io le due righe sono:
if (isset($PARAMETERS['settings']['audiotype']['.'.strtolower(end(explode('.', $PARAMETERS['settings']['audio_new_messagges'])))])){
e
<object data="sounds/<?php echo $PARAMETERS['settings']['audio_new_messagges']; ?>" type="<?php echo $PARAMETERS['settings']['audiotype']['.'.strtolower(end(explode('.', $PARAMETERS['settings']['audio_new_messagges'])))]; ?>" autostart="true" style="width:1px; height:0px;">
che sono le stesse righe di codice che vengono usate normalmente nel gdrcd5.x e che non hanno mai dato problemi
Visto che gli altri moduli caricati via ajax non segnalano errori nell'output html, credo che il problema possa trovarsi proprio in qualche cosa che non va nei parametri che arrivano a quelle due righe.
31/07/2013 10:44:33
Mh, non ci ho capito molto xD ma vedo se riesco a risolvere qualcosa xD
31/07/2013 13:57:49
Da quanto ho capito credo sia un bug del menù, almeno da quanto mi è stato detto i casi possono essere due per risolvere, se basta rimuovere quelle righe di codice o se si rimuovono bisogna ritoccare tutto un mondo dietro.
Ma nell'incertezza è meglio che non tocco nulla, non vorrei fare più danni del previsto, cmq si può aggirare per vie secondarie al momento il problema.
31/07/2013 14:30:47 e modificato da dyrr il 31/07/2013 14:32:16
Ecco quale potrebbe essere il problema cercando con quell'errore su google:
strtolower(end(explode('.', $PARAMETERS['settings']['audio_new_messagges'])))
Progabilmente la gestione degli errori sul nuovo server è settata ad un livello diverso da quella di prima.
La procedura corretta sarebbe prima assegnare una variabile all'explode del tipo:
$temp = explode('.', $PARAMETERS['settings']['audio_new_messagges']);
e poi far diventare il codice:
strtolower(end($temp));
per non far intervenire quell'errore;
Fonte da cui ho trovato la cosa: http://stackoverflow.com/questions/4636166/only-variables-should-be-passed-by-reference ↗
Ma si trovano diversi altri esempi riguardo ad una situaizone simile.
non ho testato fisicamente il codice visto che in locale non mi ha mai dato il problema, però quasi certamente è quello il problema visto che poi il menu funziona correttamente se non vi sono missive nuove e quindi non venendo caricata la parte dell'audio
01/08/2013 07:59:30
quindi corretto dovrebbe essere così?
<?php
} else {
if ($PARAMETERS['mode']['allow_audio'] == 'ON' && $_SESSION['blocca_media'] != 1 && !empty($PARAMETERS['settings']['audio_new_messagges'])){
if (isset($PARAMETERS['settings']['audiotype'][$temp = explode('.', $PARAMETERS['settings']['audio_new_messagges']);
if (isset($PARAMETERS['settings']['audiotype'][strtolower(end(explode('.', $PARAMETERS['settings']['audio_new_messagges'])))])){
?>
01/08/2013 14:21:41
Ho provato ma da cmq errore di messaggio. ora ho rimesso come era prima, non voglio fare altri casini perchè non so metterci le mani. Credo che per il momento disattivo i suoni, così funziona tutto.^^
01/08/2013 14:55:53
Probabilmente ti da ancora errore perchè gli errori che venivano segnalati erano 2. nel senso end(explode(...)) era usato in entrambe le righe segnalate, hai corretto la cosa prima di entrambe le righe?
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 ↗
World of Warship ↗
Sea of Conquest ↗
Neverness to Everness ↗
Storie di Agarthi ↗
Enlisted ↗