io prima di tutto uso una mia funzione come questa per i GET e POST

Codice PHP:
/** Converte i dati in UTF-8 come entita html
*
* Questa funzione preleva la variabile passata e lo restituisce
* modificato x evitare le injection. tutti i caratteri particolari vengono strasformati
* come entita html (Es: +  diventa %2b). Se viene passato il valore opzionale regexp, viene eseguito
* un test con la reg exp passata.
*
* <code>
* $GET=CleanInjection($_GET["var"],"[A-Za-z]{1,}");
* # Esegue anche una verifica che il dato $_GET["var"] sia di sole lettere.
* </code>
*
* @param string $Request valore da parsare
* @param string $RegExp valore [i]OPZIONALE[/i] che permette di eseguire una verifica sui dati con una regexp.
* @return boolean true in caso di successo
*/
function CleanInjection($Request=false,$RegExp="")
    {
    
$Charset="UTF-8";
    if(
VarExist($Request)==true)
        {
        if(
VarExist($RegExp)==true)
            {
            
/*Eseguo la RegExp*/
            
if(@preg_match("/".$RegExp."/",$Request,$outPut)!=1)
                {return 
false;}
            }
        
$Request=htmlentities($Request,ENT_QUOTES,$Charset);
        return 
$Request;
        }else{return 
false;}
    } 
Codice PHP:
$NewPost=CleanInjection($_POST["variabile"]); 
ti metto anche il commento inserito utile se parsi il codice con il PhpDocumentator.