Accorgimenti ai software PHP in vista di PHP 5.3+ (parte 1)

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!

Condividi