Ciao ragazzi scusatemi sto cercando di capire una cosa:
io ho un form da cui invio tramite "POST" una textbox ed una textarea quindi poi dato che devo eseguire una query di INSERT volevo fare dei controlli di sicurezza oltre che farli passare per delle funzioni che mi servono per manipolare il testo.
A questo punto ho utilizzato htmlentities e addslashes ma non riesco a capire se il modo in cui le ho utilizzate è corretto o no e soprattutto se in questo modo riesco ad evitare sql / form injection

ecco il codice:

Codice PHP:
$titolo $_POST['titolo'];
$textArea $_POST['textArea'];
    
$titolo htmlentities($titolo);
    
$titolo addslashes($titolo);
    
    
    
$textArea urldecode($textArea);        // decodifico ciò che mi è arrivato
    
$textArea spaziaturaTag($textArea);    // eseguo la spaziatura dei tre caratteri "<>
    
$textArea htmlentities($textArea);    // trasformo tutto in entità html
    
$textArea testo_in_url($textArea);    // rilevo delle url nel testo e le trasformo in cliccabili
    
$textArea nl2p($textArea);            // metto il testo tra tag 

</p>
    
$textArea eliminaTagVuoti($textArea);    // elimino tutti i tag che sono rimasti vuoti
    
$textArea addslashes($textArea);        // aggiungo gli slash per evitare problemi
    

// query di INSERT<-----

# funzione che trasforma il testo in url cliccabili
function testo_in_url($stringa){
  
// conversione tramite sostituzione con espressioni regolari
  
return preg_replace("~(http|https)://(.*?)(\s|\n|[,.?!](\s|\n)|$)~""<a href=\"$1://$2\" rel=\"nofollow\">$1://$2</a>$3"$stringa);
}

# funzione che trasforma i ritorni a capo con tag 

</p>
function 
nl2p($text) {
  return 
"

str_replace("\n""</p>

"
$text) . "</p>";


# funzione che elimina i tag vuoti
function eliminaTagVuoti($html)
{
  
$pattern "/<[^\/>]*>([\s]?)*<\/[^>]*>/";
  return 
preg_replace($pattern''$html);


function 
spaziaturaTag($testo)
{
    return 
preg_replace('#([<>"])#'' $1 ',$testo);