Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Validare form

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    8

    Validare form

    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"]; 

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    puoi fare dei controlli di congruenza per verificare la correttezza dei dati inseriti dall'utente (per la sicurezza dei dati nel DB, PDO e i suoi prepared statement dovrebbero bastare)

    tipo, l'email deve poter contenere solo i caratteri previsti per l'account e il dominio, una sola @ e un dominio strutturato in maniera corretta
    il numero di telefono deve contenere solo numeri e al massimo il segno + come primo carattere (ovviamente gli spazi non li devi considerare come errore)
    nome, cognome e nazione non devono contenere caratteri diversi dalle lettere (mi pare che ci sia il modo di farlo con le espressioni regolari anche per lingue e caratteri diversi da A-Z e a-z)

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2015
    Messaggi
    8
    Ciao,
    ti ringrazio per la risposta. Fin qui ci siamo, la cosa che non mi è chiara è, dopo aver appurato che le variabili non sono vuote, l'email è corretta e non c'è spam, qual'è il miglior modo di rendere sicure le variabili? Qual'è il modo "più nuovo" o meglio, che non deprecherà a breve?

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    rendere sicure le variabili = evitare che contengano "qualcosa" che non ti aspetti o che possa arrecare danno
    se già controlli che nei campi ci siano solo i caratteri che ti aspetti, come fanno a non essere sicure? l'unico problema lo puoi avere nella textarea, dove devi assolutamente evitare che ci possa essere dello scripting (javascript, ad esempio) che possa esporre il tuo sito web ad attacchi (ad esempio, XSS)

    per quanto riguarda il deprecato a breve, non credo che espressioni regolari o altro di simile lo possano essere a breve (come preg_*, ad esempio, o le funzioni mysqli_*)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.