Validate form mondiale

  • Creatore Discussione Creatore Discussione Rey
  • Data di inizio Data di inizio

Rey

Utente Attivo
11 Set 2012
73
0
6
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?

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"];
 
Link molto utile grazie marino, mi ero già occupato del charset per i miei progetti però in effetti mi manca $dbh->exec("set names utf8"); :) Lo aggiungo subito.

Per quanto riguarda le funzioni per pulire le variabili sai darmi qualche dritta?
 

Discussioni simili