ciao a tutti! per il controllo su un form sto cercando un attimino di automatizzare, quindi ho fatto una cosa del genere: ho messo in un array i campi con le relative preg:
e poi il controllo lo effettuo in un foreach dove compongo anche il relativo messaggio d'errore:codice:$preg=array("cap_cliente"=>"#[0-9]{5}U#", "cap"=>"#[0-9]{5}U#", "data_nascita"=>"function=isDate", "codice_fiscale_cliente"=>"#[a-zA-Z]{6}[0-9]{2}[a-zA-Z][0-9]{2}[a-zA-Z][0-9]{3}[a-zA-Z]#U", "telefono_cliente"=>"#[0-9]{5,15}#U", "telefono1"=>"#[0-9]{5,15}#U", "telefono2"=>"#[0-9]{5,15}#U", "fax"=>"#[0-9]{5,15}#U", "partita_iva"=>"#[0-9]{11}#U", "importo_prestito"=>"#[0-9]{1,}[\.][0-9]{0,2}#U", "importo_rata"=>"#[0-9]{1,}[\.][0-9]{0,2}#U", "durata_mesi"=>"#[0-9]{1,3}#U");
questo controllo funziona bene, solo non capisco perché ad esempio con i campi numerici (tipo importo rata e importo prestito) non funziona bene...codice:foreach($preg as $c=>$match){ if($$c){ if(strstr($match,"function")){ $func=array_pop(explode("=",$match)); if (!$func($$c)){ $fpre=true; $c=str_replace("_"," ",$c); $errp.=" - Il campo {$c} non ha una forma corretta "; } }else{ if(!preg_match($match,$$c)){ $fpre=true; $c=str_replace("_"," ",$c); $errp.=" - Il campo {$c} non ha una forma corretta "; } } } } ?>
cioè, se metto un valore stringa => ff mi dice che non è corretto, ma se io metto 12.123456 non mi dà nessun errore, come mai? :master:
eppure ho settato max 2 decimali dopo il punto
Mi sapete spiegare il motivo? Grazie mille!![]()

Rispondi quotando
