Post  |  Commenti

20th
FEB

Comportamento anomalo in Safari con tag IMG

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted by redsend | Filed under BugFix

Oggi ho passato più di 6 ore per correggere un bug.

Scrivo questo post per aiutare quei poveri programmatori che si troveranno nella mia stessa situazione. Brevemente spiegherò i sintomi che venivano rilevati nell’applicazione web e poi vi illustrerò da cosa dipendeva il problema e come viene risolto.

I sintomi che si presentavano era un azzeramento anomalo della sessione, venivano resettate alcune variabili in sessione e rigenerati alcuni codici di controllo che quindi compromettevano il flusso tra le pagine web dell’applicazione. I cookie erano impostati correttamente e con durata infinita, quindi non poteva essere un problema di scadenza dei cookie. I file della sessione erano scrivibili e venivano correttamente aggiornati in altri casi e quindi non poteva essere un problema di permessi sui file della sessione, altrimenti l’errore si sarebbe presentato a monte. L’errore accadeva solo utilizzando Safari e con Firefox questo non accadeva, il che complicava ancora di più le cose perché trattandosi di sessioni PHP e quindi di script che vengono eseguiti lato server non aveva alcun senso che su un browser funzionasse mentre sull’altro no.

L’errore che era stato commesso era un tag immagine con l’attributo src uguale a stringa vuota (src=”" per intenderci).

In questo caso Firefox semplicemente eliminava l’immagine dal flusso HTML e quindi non accadeva nulla di strano, mentre Safari, il buono e caro Safari (sto cercando di trattenermi dal rompere tutto), cosa fà? Suppone che per qualche arcano motivo l’immagine inserita senza path si trovi nell’indirizzo della pagina php invocata e quindi effettua un secondo chiamata alla pagina che compromette tutto il funzionamento della sessione PHP e del flusso che stavano seguendo le pagine.

Per farmi capire meglio la pagina chiamata ad esempio era index.php e Safari trovando un tang IMG con src=”" sostituisce all’indirizzo dell’immagine index.php, quindi otteniamo una cosa del genere: src=”index.php”, in che corrisponde ad una seconda invocazione della pagina index.php che potrebbe, come nel mio caso, compromettere il flusso che si stava seguendo attraverso form etc… questo perché, ad esempio, nell’invocazione di index.php senza nessun parametro e sottomissione di form, veniva esegueto l’azzeramento della sessione…

Bhè ottimo lavoro da parte di quelli di Safari per questa emerita scelta progettuale… e spero di aver risparmiato tante ore di debug ad altri poveri programmatori che si troveranno in questa situazione.

Tags: > > > >

8th
DIC

Non funzionano le notifiche nel forum con XOOPS?

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted by redsend | Filed under BugFix, Programming

Da un pò di tempo mi sono trovato a lavorare con questo CMS (http://www.xoops.org), in particolare ho utilizzato il modulo che ti permette di integrare il famoso phpbb all’interno del CMS. I moduli in questione si chiamano newbb e newbbex. L’ultimo dovrebbe essere il più aggiornato, ma entrambi avevano questo problema: non inviavano le notifiche nel momento in cui venivano inseriti nuovi post o venivano creati nuovi thread. Nonostante era attivate e tutto il sistema mail funzionava correttamente, solo in questi due moduli le notifiche non funzionavano.

Quale era il problema?

Leggi il resto…

Tags: > > > >

29th
AGO

JSCalendar e bug preselezione data

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted by raphe | Filed under Appunti, BugFix

Chi utilizza jscalendar, noto script per la generazione di calendari dinamici nella pagine html, si sarà accorto che c’è un malfunzionamento quando si vuole che il calendario generato si porti su una data preselezionata.

Curiosando nel forum ufficiale, ho trovato un suggerimento che potrebbe risolvere il problema.

Individuare il file calendar-setup.js, portarsi alla riga 158 e sostituire al controllo:

if (dateEl)

il controllo:

if (dateEl && dateEl.value)

Questa piccola modifica a me ha funzionato!

Tags: > > > >
Il contenuto di questo Blog è rilasciato sotto Licenza Creative Commons (Leggi)