La nuova versione del linguaggio PHP fatica a essere adottata dai provider di hosting quasi quanto lo fu la versione 5 ai tempi del suo rilascio. Questo perché dalla versione 5.3 sono state introdotte alcune incompatibilità rispetto alle precedenti.
In questa serie di post illustrerò quelli che sono i più frequenti problemi che si possono riscontrare in caso di aggiornamento e come porvi rimedio (possibilmente prima ancora di aggiornare).
set_magic_quotes_runtime
Questa è una delle funzioni che più spesso mi è capitato di dover “aggiustare”.
La funzionalità di magic_quotes è una di quelle pessime (tra le tante) idee partorite dai creatori del linguaggio di PHP, giustificabile solo nel contesto temporale nel quale è stata pensata e serve ad applicare in automatico un backslash prima di ogni apice singolo ai valori ritornati da molte funzioni che recuperano dati da sorgenti esterne (database, file, variabili in post/get, etc…).
Da buon programmatore ho sempre fatto tutto ciò che era in mio potere per debellare questa piaga dalle mie applicazioni, provvedendo quindi a rimuovere i backslash di troppo dalle variabili in GET/POST e disattivando la magic_quotes_runtime con:
set_magic_quotes_runtime(false);
Ora questa funzione è però deprecata, anche se le mie intenzioni erano delle migliori. Per essere quindi sicuro di disattivare questa oscenità in presenza di versioni di php < 5.3 e di non incorrere in warning in php 5.3+, basta rimpiazzare la riga precedente con:
@set_magic_quotes_runtime(false);
in modo da sopprimere gli avvisi di PHP e il gioco è fatto!