Salve a tutti,
ho un form molto semplice con degli input che dovranno essere messi sia in un db mysql (PDO) che spediti per email (PhpMailer).

Quali controlli mi conviene fare? Per il db sono apposto perchè uso i prepared statment.

Il problema è che sarà un form mondiale quindi ad esempio A-Za-z sul nome/cognome non si può fare, in caso sia un giapponese che scrive con i simboli credo non vada bene.

Su w3schools consigliano di usare trim, stripslashes, htmlspecialchars, però non capisco, perchè usare stripslashes? Dovrei aggiungere i \ non rimuoverli! Un po' come mysql real escape che è deprecata.. Cosa mi consigliate? Voi cosa usate per filtrare?


Codice PHP:
// Controllo se tutti i campi sono compilati 
if (empty($_POST["nome"]) || 
empty(
$_POST["cognome"]) || 
empty(
$_POST["nazione"]) || 
empty(
$_POST["email"]) || 
empty(
$_POST["numero"]))  
{ echo 
"<b style='color:red;'>$campiobb</b>"; } 

// Valido la mail 
else if (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL))  
{ echo 
"<b style='color:red;'>$validemail</b>"; } 

// Questa  variabile deve essere lunga 4 ed essere numerica senza virgola 
else if (strlen($_POST["numero"]) !== ||  
!
filter_var($_POST["numero"], FILTER_VALIDATE_INT) === ||  
filter_var($_POST["numero"], FILTER_VALIDATE_INT) === false)  
{ echo 
"<b style='color:red;'>$validnumero</b>"; } 

// Controllo se c'è dello spam nella textarea 
else if (strpos($_POST["note"],'http') !== false ||  
strpos($_POST["note"],'www') !== false ||  
strpos($_POST["note"],'HTTP') !== false ||  
strpos($_POST["note"],'WWW') !== false
{ echo 
"<b style='color:red;'>$validspam</b>"; } 

else { 
$nome $_POST["nome"]; 
$cognome $_POST["cognome"]; 
$nazione $_POST["nazione"]; 
$email $_POST["email"]; 
$numero $_POST["numero"];