Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269

    Eseguire un controllo su campi obbligatori e non obbligatori

    Salve ragazzi, ho un form composto da 12 campi il quale si collega ad una pagina.php.

    Tra i 12 campi 10 sono obbligatori e 2 non sono obbligatori, quando vado nella pagina.php, inserisco tutti i valori in un'array e successivamente eseguo un foreach del genere:

    Codice PHP:
    session_start();

    $check true;
    foreach (
    $array as $key => $value)
    {
        if(empty(
    $value))
            
    $check false;
        else
        {
            
    $_SESSION[$key] = $value// Nel momento in cui ho es.8 campi corretti e il resto non corretto, dovrò pur salvare i dati inseriti per poi farli modificare, quindi uso le sessioni.
        
    }

    Ovvero, setto una variabile a true, e appena trovo un campo vuoto la setto a false.
    Adesso tutto questo deve accadere solo con i campi obbligatori mentre con 2 campi(email e cellulare) questo non deve accadere, però devo anche tenere presente che non posso continuare se l'email inserita è strutturalmente errata ovvero non segue questo criterio:

    nome@dominio.xxx

    Come posso fare?

    Inoltre approfitto per chiedere se nell'array è consigliato applicare la funzione htmlspecialchars,per filtrare i campi dagli attacchi XXS.

    Grazie anticipatamente, Gaten.
    Con i sogni possiamo conoscere il futuro...

  2. #2
    Perchè non ti scarichi una classe già pronta per la gestione della validazione (es. FormHandler)?

    In merito al secondo quesito, applicare alla cieca funzioni del genere è inutile ed illogico. Devi filtrare SOLO i campi che potrebbero essere usati per attacchi del genere.

  3. #3
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Bè, poichè sono tutti campi di testo, penso che tutti sono utilizzabili per attacchi.
    E precedentemente domandavo:

    Su 12 campi 10 sono obbligatori e 2 non obbligatori, ho postato del codice.
    Praticamente io salvo tutto in un array dopodichè col foreach controllo tutti i campi, però io nell'array ho tutti i campi del modulo sia quello obbligatori che quelli non obbligatori.
    Come devo fare per controllare la giusta validità dell'email e telefono(CAMPI NON OBBLIGATORI) e la validità degli altri campi(OBBLIGATORI)?
    Con i sogni possiamo conoscere il futuro...

  4. #4
    Originariamente inviato da gaten
    Bè, poichè sono tutti campi di testo, penso che tutti sono utilizzabili per attacchi.
    Pensi male visto che NON dipende dal tipo ma dall'utilizzo che si fa del campo.

    Originariamente inviato da gaten
    Su 12 campi 10 sono obbligatori e 2 non obbligatori, ho postato del codice.
    Praticamente io salvo tutto in un array dopodichè col foreach controllo tutti i campi, però io nell'array ho tutti i campi del modulo sia quello obbligatori che quelli non obbligatori.
    Come devo fare per controllare la giusta validità dell'email e telefono(CAMPI NON OBBLIGATORI) e la validità degli altri campi(OBBLIGATORI)?
    Perchè non ti scarichi una classe già pronta per la gestione della validazione (es. FormHandler)?

    Inoltre, l'utilizzo delle sessioni non è necessario.

    Infine, è sufficiente un po' di logica per capire che è sufficiente saltare i 2 campi non obbligatori all'interno del ciclo per far si che vengano controllati solo gli 8 obbligatori.

  5. #5
    Utente di HTML.it L'avatar di gaten
    Registrato dal
    Jul 2007
    Messaggi
    1,269
    Per chiarire le idee, premetto che è un piccolo modulo per curriculum, quindi i classici campi:

    Nome, Cognome, Nazionalita, Nato il... etc...

    Filippo, ho capito cosa intendi , saltare il controllo sul campo email e telefono, però io dovrò continuare solo se tutti i campi obbligatori sono pieni, l'email sia valida oppure non sia stata proprio inserita, oppure se il telefono sia stato inserito oppure no!
    Una corretta condizione potrebbe essere la seguente:

    Codice PHP:
    if (($check) && (eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$"$email) || ($email == " ") || $telefono == " ")))
    {
    echo 
    "Posso andare avanti";
    }
    else
    {
    echo 
    "Errore";

    Con i sogni possiamo conoscere il futuro...

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.