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?
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?
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"]) !== 4 ||
!filter_var($_POST["numero"], FILTER_VALIDATE_INT) === 0 ||
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"];