salve gente, ho recentemente aggiunto al mio form di registrazione i soliti 2 radio button per la scelta del sesso uomo donna...
ho un problema nell inserire un controllo durante la validazione degli input per verificare se l utente ha selezionato o meno uno dei due sessi, e non li ha lasciati vuoti..codice:Scegli Sesso: Uomo:<input type="radio" name="sesso" value="Uomo"></input> Donna:<input type="radio" name="sesso" value="Donna"></input>
codice:/*variabili per gestire gli errori*/ public $messages = array( 1 => 'Il campo username è obbligatorio.', 2 => 'Il campo email è obbligatorio.', 3 => 'Il campo password è obbligatorio.', 4 => 'Le due password non coincidono.', 5 => 'Il campo username contiene caratteri non validi. Sono consentiti solo lettere, numeri il i seguenti simboli . _ -.', 6 => 'Inserisci una email con sitassi corretta.', 7 => 'La password scelta è eccessivamente breve. Scegli una password di almeno 8 caratteri.', 8 => 'Esiste già un utente registrato con questo username.', 9 => 'Esiste già un utente registrato con questa email.', 10 => 'TI È STATA INVIATA UN E-MAIL DI CONFERMA DI REGISTRAZIONE CON UNA COPIA DEI <br>TUOI DATI. CONFERMA LA TUA REGISTRAZIONE, ALTRIMENTI NON POTRAI ACCEDERE.', 11 => 'Login errato : username o password errati!!', 12 => 'Login eseguito con successo.', 13 => 'Logout eseguito con successo.', 14 => 'Per accedere a questo sito occorre <b><u>registrarsi</u></b> ed essere loggati.', 15 => '<font color="red">* Campo sesso obbligatorio.</font>' ); public $message_script; /************************************* ALCUNI METODI PER ESEGUIRE VALIDAZIONI *************************************/ // verifica campo generico non vuoto (TRUE se non vuoto) public function empty_string($string){ $string = trim($string); if($string==''){ return TRUE; } else{ return FALSE; } } // verifica campo radio vuoto (TRUE se non vuoto) public function empty_radio($sesso){ $sesso = trim($_POST['sesso']); if($sesso==''){ return TRUE; } else{ return FALSE; } } // verifica sintassi username public function is_username($username){ $regex = '/^[a-z0-9\.\-_]{3,30}$/i'; return preg_match($regex, $username); } // verifica sintassi email (TRUE se ok) public function is_email($email){ $regex = '/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/'; return preg_match($regex, $email); } // verifica sintassi password (per semplicit� solo lunghezza) (TRUE se ok) public function is_secure_password($password){ if(strlen($password)>=8){ return TRUE; } else{ return FALSE; } }come potete vedere ho provato ad inserire il controllo sugli input radio , ma non va..praticamente succede che se lascio gli input radio vuoti non mi vengono pi� restituiti i messaggi d errore riguardanti gli altri campi...mentre se seleziono uno dei due input radio gli errori riguardanti gli altri campi tornano a funzionare...viceversa se riempo tutti i campi e lascio soltanto gli input radio vuoti , non mi viene rilasciato alcun errore riguardante appunto i campi radio vuoticodice:/***************************** ESECUZIONE DELLA REGISTRAZIONE ******************************/ public function esegui_registrazione(){ // se il form e i suoi input sono stati inviati if(isset($_POST['register']) AND isset($_POST['username']) AND isset($_POST['sesso']) AND isset($_POST['email']) AND isset($_POST['pass1']) AND isset($_POST['pass2'])) { //valorizziamo alcune variabili $this->reg_username = trim($_POST['username']); $this->reg_email = trim($_POST['email']); $this->reg_sesso = trim($_POST['sesso']); $this->reg_pass = trim($_POST['pass1']); $this->reg_confirm_pass = trim($_POST['pass2']); // criptiamo la password $this->reg_crypt_pass = $this->crypt_pass($this->reg_pass); // eseguiamo la validazione degli input $valid_input = $this->check_input_registrazione(); // se sono validi if($valid_input===TRUE){ // inseriemo all'interno del database i dati $this->query_insert_registrazione(); // settiamo il messaggio di successo della registrazione $this->message_script = 10; return TRUE; } } return FALSE; } // verifica che gli input siano corretti protected function check_input_registrazione(){ if($this->empty_string($this->reg_username)){ $this->message_script = 1; return FALSE; } else if($this->empty_string($this->reg_email)){ $this->message_script = 2; return FALSE; } else if($this->empty_radio($this->reg_sesso)){ $this->message_script = 15; return FALSE; } else if($this->empty_string($this->reg_pass)){ $this->message_script = 3; return FALSE; } else if($this->reg_pass != $this->reg_confirm_pass){ $this->message_script = 4; return FALSE; } else if(!$this->is_username($this->reg_username)){ $this->message_script = 5; return FALSE; } else if(!$this->is_email($this->reg_email)){ $this->message_script = 6; return FALSE; } else if(!$this->is_secure_password($this->reg_pass)){ $this->message_script = 7; return FALSE; } else if($this->isset_username($this->reg_username)==TRUE){ $this->message_script = 8; return FALSE; } else if($this->isset_email($this->reg_email)==TRUE){ $this->message_script = 9; return FALSE; } return TRUE; } // esecuzione della query insert di registrazione protected function query_insert_registrazione(){ $query = " INSERT INTO users SET username='".mysql_real_escape_string($this->reg_username)."', pass='".mysql_real_escape_string($this->reg_crypt_pass)."', email='".mysql_real_escape_string($this->reg_email)."', sesso='".mysql_real_escape_string($this->reg_sesso)."', attivato = 0 , data_reg= NOW()"; $result = mysql_query($query) or die(mysql_error()); return mysql_insert_id(); }potrebbe essere una cosa banale ma a me sta fumando il cervello
![]()

potrebbe essere una cosa banale ma a me sta fumando il cervello
Rispondi quotando
...

grazie mille

dovrebbe arrivarne soltanto una con i controlli che ho inserito
