Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    350

    Validazione campo checkbox

    Salve a tutti.
    Ho utilizzato l'articolo http://php.html.it/articoli/leggi/90...utenti-con-php per fare in un sito la registrazione utenti.

    Tutto a posto, funziona tutto, ma voglio aggiungere al form di registrazione in fondo un campo con la spunta per l'accettazione del trattamento dei dati... Vorrei che se metto la spunta il form invia, se non la metto non invia e mi dice di mettere la spunta.
    Per fare questo sto utilizzando il codice per la validazione dei campi del form già presente in una pagina.

    In pratica funziona così:
    1. C'è un form con vari campi fra cui in ultimo questo:
    codice:
     
    <label for="statocivile" class="testo">Autorizzo il trattamento dei miei dati ai sensi del Decreto Legislativo 30 giugno 2003, n. 196.</label>
    
    
    <input name="autorizzo" type="checkbox" value="autorizzo" /> 
    <label class="label">Autorizzo</label>
    2. i campi vengono validati da questo codice:
    codice:
    $_CONFIG['check_table'] = array(
    	"username" => "check_username",
    	"password" => "check_global",
    	"nome" => "check_global",
    	"cognome" => "check_global",
    	"indirizzo" => "check_global",
    	"occupazione" => "check_global",
    	"email" => "check_global",
    	"telefono" => "check_global",
    	"citta" => "check_global",
    	"provincia" => "check_global",
    	"azienda" => "check_global",
    	"iva" => "check_global",
    	"legale" => "check_global",
    	"autorizzo" => "check_spunta" 
    );
    
    function check_username($value){
    	global $_CONFIG;
    	
    	$value = trim($value);
    	if($value == "")
    		return "Il campo non può essere lasciato vuoto";
    	$query = mysql_query("
    	SELECT id
    	FROM ".$_CONFIG['table_utenti']."
    	WHERE username='".$value."'");
    	if(mysql_num_rows($query) != 0)
    		return "Nome utente già utilizzato";
    	
    	return true;
    }
    
    function check_global($value){
    	global $_CONFIG;
    	
    	$value = trim($value);
    	if($value == "")
    		return "Il campo non può essere lasciato vuoto";
    	
    	return true;
    }
    
    function check_spunta($value){
    	global $_CONFIG;
    	
    	$value = trim($value);
    	if($value == "")
    		return "E' necessario autorizzare il trattamento dei dati.";
    	
    	return true;
    }
    Non funziona.... Cioè il form invia i dati sia che ci sia la spunta sia che no....
    pap

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    350
    up
    pap

  3. #3
    Non so.. prova ad usare le parentesi graffe anche negli if. Poi dipende.. come tratti i valori di ritorno delle funzioni.

  4. #4

    ............

    Ciao.
    Devi usare una cosa del genere:
    Codice PHP:
    if(!isset($_POST['remember']))
        {
            
    $_POST['remember'] = false;
        } 
    Input di tipo checkbox se non cheched dà
    valore NULL non vuoto.


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    350

    Re: ............

    Originariamente inviato da whisher
    Ciao.
    Devi usare una cosa del genere:
    Codice PHP:
    if(!isset($_POST['remember']))
        {
            
    $_POST['remember'] = false;
        } 
    Input di tipo checkbox se non cheched dà
    valore NULL non vuoto.


    Non ho capito... Dove la devo usare?
    Nella funzione check_spunta?
    Cos'è "remember"?
    pap

  6. #6

    ....

    Codice PHP:
    if($value == ""
    sostituisci con
    Codice PHP:
    if(!isset($value)) 


    PS.
    L'utilizzo di $_CONFIG e i vari global
    non ha senso quando hai $_POST
    che è superglobale.
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    350

    Re: ....

    Originariamente inviato da whisher
    Codice PHP:
    if($value == ""
    sostituisci con
    Codice PHP:
    if(!isset($value)) 
    Ho provato a sostituire con quel codice che mi hai dato, ma non funziona lo stesso...
    Cioè il form invia anche senza spunta...
    pap

  8. #8

    ....

    Riguarda il codice non si capisce perchè rendi
    globale $_CONFIG dentro le functions e poi
    non lo utilizzi.
    Poi per le funzioni di validazione solitamente
    la funzione ritorna false o true.
    Fai una prova al di fuori del tuo codice
    e vedi se funziona o no.


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.