Validare alcuni campi di un form

  • Creatore Discussione Creatore Discussione MoPa
  • Data di inizio Data di inizio

MoPa

Nuovo Utente
28 Mar 2016
16
0
1
Sono alle prime armi di PHP e mi sono arenato su un problema, quindi chiedo aiuto a chi ne sa più di me, ringraziando anticipatamente.

In una pagina html ho un form action con il seguente menu a discesa denominato "tipologia":

<option value="privato cittadino">privato cittadino</option>
<option value="ditta individuale">ditta individuale</option>
<option value="azienda">azienda</option>
<option value="associazione">associazione</option>
<option value="libero professionista">libero professionista</option>


a seguire, sempre nel form, è presente anche un campo denominato "partita_iva" che però deve essere lasciato vuoto solo se si seleziona il valore "privato cittadino".

Quindi, in pratica, nella pagina PHP, dovrei fare un controllo che se sarà selezionato qualsiasi valore (esempio: azienda o associazione, ecc) escluso "privato cittadino", deve dare errore di riempire il campo partita iva se questo sarà lasciato vuoto, mentre se sarà selezionato il valore "privato cittadino" si deve proseguire lasciando il campo partita_iva vuoto.

Avevo pensato ad una cosa del genere:

if (( $tipologia == "ditta individuale" ) || ( $tipologia == "azienda" ) || ( $tipologia == "associazione" ) || ( $tipologia == "pubblica amministrazione" ) || ( $tipologia == "libero professionista" ))
{
echo "E R R O R E !<br>Devi compilare il campo PARTITA IVA per continuare.";
exit;
}

solo che mancando la verifica del campo $partita_iva, di conseguenza da sempre l'errore anche se questo campo partita_iva è pieno. Come posso inglobare anche il controllo se il il campo partita_iva è vuoto o pieno?


PS:
Se poi non chiedo troppo dovrei verificare che il valore $partita_iva, naturalmente solo se inserito, questo deve essere di 11 caratteri e devono essere solo numeri e non lettere.



Grazie
 
Ultima modifica:
Avrei risolto cosi, almeno sembra che funzioni, solo che non ho il controllo nella partita iva se sono stati inseriti 11 caratteri e se sono solo numeri.
Qualcuno riesce a dirmi se è corretto e come posso aggiungere i 2 controlli mancanti.


// INIZIO
if ( $partita_iva == "" )
{
if (( $tipologia == "ditta individuale" ) || ( $tipologia == "azienda" ) || ( $tipologia == "associazione" ) || ( $tipologia == "pubblica amministrazione" ) || ( $tipologia == "libero professionista" ))
{
echo "E R R O R E !<br>Devi compilare il campo PARTITA IVA per continuare.";
exit;
}
else
{
}
}
// FINE
 
Ciao,
se ho capito bene quello che intendi fare, ti posto il codice (ho fatto qualche piccola aggiunta al form).
Questo è il form:



HTML:
<form method="post" action="contr.php">
	<select name="ragsoc">
                <option value="  ">Effettua una scelta</option>
		<option value="privato cittadino">privato cittadino</option>
		<option value="ditta individuale">ditta individuale</option>
		<option value="azienda">azienda</option>
		<option value="associazione">associazione</option>
		<option value="libero professionista">libero professionista</option>
	</select>
    <br><br><br>partita iva
    <input type="text" name="piva"><br>
    <br><br><br> <input type="submit" name="invia" value="Invia i dati">
</form>


........e questo è il codice PHP


PHP:
<?php
$rag_soc = $_POST['ragsoc'];
$piva = $_POST['piva'];

if ($rag_soc != '  ') {
    if (($rag_soc == 'privato cittadino' and $piva == '') or ($rag_soc != 'privato cittadino' and (is_numeric($piva) and strlen($piva) == 12))) {
        echo 'corretto';
    } else {
        echo 'ATTENZIONE!! Devi riempire il campo partita_iva';
    }
} else {
    echo 'ATTENZIONE!! Campo ragione_sociale vuoto';
}
?>


Devi semplicemente adfattarlo un po',. sempre che era ciò che intendevi. Ciao:byebye::byebye:


Zorro
 
ciao
io proverei a fare così
PHP:
<?php
$rag_soc = trim($_POST['ragsoc']);
$piva = trim($_POST['piva']);
$err=0;
if($rag_soc !=""){
	if($rag_soc=="privato cittadino"){
		//il privato non ha partita iva
		//quindi qualsiaso cosa abbia messo la elimino
		$piva="";
	}else{
		//è un soggette che deve avere la partita iva
		$pat="/[09]{12}/";// deve essere composta solo di 12 numeri
		if(!preg_match($pat,$piva)){$err=1;}
	}
	if($err==0){
	//fai quello che devi fare
	}else{
	echo "partita iva assente o non corretta";
	//e fai quello che devi in caso di errore
	}
}else{
	echo "non hai selezionato il tipo di ragione sociale";
}
//...
?>
 
ciao
piccolo dubbio, ma non sono sicuro: ma non sono 11 i caratteri numerici?
se è cosi modificare
$pat="/[09]{12}/";
in
$pat="/[09]{11}/";
 

Discussioni simili