ogni variabile presa dall'esterno, quindi non creata runtime, va sottoposta a casting... proprio come il grande fratello
si attendono un buffone che attiri l'attenzione per mesi su una popolazione con limitato uso del cervello e quello devono trovare, così fanno un casting per vedere se il buffone atteso è veramente un buffone o fa finta.
Sì fa ridere ma il principio è il medesimo... ti attendi un id, quindi un numero e devi controllare che sia veramente ciò che ti attendi, quante più cose controlli tante meno probabilità di usi non consoni si creano; ovviamente l'errore va gestito.
Joomla solitamente usa i vari JRequest getVar piuttosto che getInt, poi dei parametri di casting come argomenti:
http://api.joomla.org/Joomla-Framework/Environment/JRequest.htmlSe fossimo fuori da joomla la cosa non cambia, un:
$pippo=$_GET['id'];
va prima sottoposto a controlli, cosa facilitata da varie funzioni di php, chessò:
if(is_numeric($_GET['id'])){
$pippo=$_GET['id'];
ma puoi anche fare controlli più specifici se sai ad esempio che quel numero non sarà mai più di 3 cifre:
if( is_numeric($_GET['id']) && strlen($_GET['id']) <= 3 ){
$pippo=$_GET['id'];
..o complicarti la vita con le regex cercando un pattern esclusivamente [0-9]+ ... o [0-9]{3} ..per il discorso delle tre cifre sopra.
M.