come mettere controlli su form di inserimento dati??

temino

Utente Attivo
22 Gen 2011
47
0
0
Salve a tutti... sto realizzando una pagina in php per l'inserimento di dati anagrafici.
Come faccio ad impostare una funzione che mi limita le lettere da "a" a "z" per i campi nome e cognome e numeri da 0 a 9 per il cap???

Grazie in anticipo!!
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Per gli alfabetici:
PHP:
if (preg_match("/^[a-zA-Z]$/", $_POST['nome'])) {
    echo "Formato non corretto";
}
Per i numerici dovrebbe bastare:
PHP:
if(!ctype_digit($_POST['cap']))
{
   echo "Formato non corretto";
}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
oltre a quello che ha detto eliox, prova questa

PHP:
<?php
function ver_cap($cap){
	if(!preg_match("/^[0-9]{5,5}$/",$cap)){
		return FALSE;// non un numero o numero non di 5 cifre
	}else{
		$cap=(int)$cap+0;//trasformo comunque in numero
		if($cap ==0 || $cap < 10){//credo che il cap più piccolo sia 00010 in provincia di roma
			return FALSE;//erano tutti zeri
		}else{
			return $cap;//cap valido
		}
	}
}
//verifica della function
$es=array("aaa","aa345","35100","00000","00005" ,"235","00011","00009");// solo 35100 e 00011 è un vero cap
foreach($es as $valore){
	if(ver_cap($valore)){
		echo "<b>questo $valore è un CAP</b><br>";
	}else{
		echo "$valore NON è un CAP valido<br>";
	}
}
?>
 

temino

Utente Attivo
22 Gen 2011
47
0
0
aggiungo un'ulteriore difficoltà XD (perlomeno per me!) .. e se volessi mettere un controllo sul campo "peso", che può contenere solo i 10 caratteri numerici e la virgola??.. come potrei fare??
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
tiratina d'orecchi a alex, prova
PHP:
$es=array('aa','123,78','678.37','12o,98','325,25,33','22.22.33');
foreach($es as $valore){
	if(preg_match('/^[0-9\,]+$/', $valore)){
		echo "$valore è un numero float<br>";
	}else{
		echo "$valore NON è un numero<br>";
	}
}
questo è l'out
aa NON è un numero
123,78 è un numero float
678.37 NON è un numero
12o,98 NON è un numero
325,25,33 è un numero float
22.22.33 NON è un numero
cosa succede se poi deve usare tale numero per un calcolo?

p.s.
il colore rosso l'ho aggiunto per evidenziare
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
potresti provare questa

PHP:
<?php
function ver_float($num){
	$num = str_replace(chr(44), ".", $num);//sostituisco l'eventuale virgola/e, per i calcoli i numeri devono avere il .
	if(count(explode(".",$num)) > 2){
		return FALSE; //c'è più di un punto, quindi numero non valido
	}else{
		if(preg_match('/^[0-9.]+$/', $num)){
			// qui potresti mettere la verifica se troppo grande o troppo piccolo
			return $num;//è un numero float
		}else{
			return FALSE;//non è un numero
		}
	}
}
//prova della function
$es=array('aa','123,78','678,375','12o,98','325,25,33','22.22.33','333.0','111');
foreach($es as $valore){
	if(ver_float($valore)){
		echo ver_float($valore)." è un numero float (era: $valore)<br>";
	}else{
		echo "$valore NON è un numero<br>";
	}
}
?>

p.s.
nota per alex:
ho provato con filter_var, ma non riesco a farla funziare, perche? (non dirmi che è perche non ho la ver. di php giusta perche con l'email funzia)
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Io mi sono attenuto a quello che lui ha chiesto: il campo deve consentire l'inserimento di numeri e virgole. Prova con questa (consente uno o più numeri, che possono essere seguiti da un punto o una virgola che a loro volta devono essere seguiti da uno o più numeri):
PHP:
preg_match('/^([0-9]+)((\,|\.)?[0-9]+)?$/', $value);
Comunque un modo più immediato è:
PHP:
is_numeric(str_replace(',', '.', $value));
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
hai ragione, non avevo pensato a is_numeric()
però come mai come ho detto la
filter_var($valore,FILTER_VALIDATE_FLOAT);
non mi funzia ? (ho il php di ver. giusto)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa, arteriosclerosi !! il mio vecchio progr non ha il giusto php, quindi non mi evidenziava il colore della funzione e io scrivevo
fiter_var(ecc..) cioè filter senza l
ecco così

PHP:
$es=array('aa','123,78','678,375','12o,98','325,25,33','22.22.33','333.0','111');
foreach($es as $valore){
	if(filter_var(str_replace(',', '.', $valore),FILTER_VALIDATE_FLOAT)){
		echo "$valore è un numero float (era: $valore)<br>";
	}else{
		echo "$valore NON è un numero<br>";
	}
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
K Mettere insieme due funzioni Javascript 2
Shyson Mettere categorie nelle anteprime degli articoli PHP 1
R Mettere in sicurezza una comunicazione .NET Framework 0
G Mettere il footer in basso HTML e CSS 0
G mettere account posta in Microsoft outlook 2016 di gmail Posta Elettronica 0
B Mettere sito offline senza troppe penalizzazioni SEO e Posizionamento 0
G [HTML] mettere link in facebook link invece che su sito web Social Media Marketing 1
G [Guida MyBB 1.8] Mettere in colonna SubForum CMS (Content Management System) 0
G [Photoshop] Mettere una scritta in prospettiva. Photoshop 7
Shyson [PHP] Mettere parentesi graffe o no? PHP 2
Shyson [PHP] Mettere placeholder PHP 2
Shyson [HTML] Mettere select responsive HTML e CSS 3
giannit [HTML] Mettere div al posto di iframe e possibile? HTML e CSS 9
D cambio il dominio per mettere keyword dentro? SEO e Posizionamento 8
G [HTML] mettere menu style smartphone anche sui tablet HTML e CSS 0
Shyson [PHP] Mettere il link "Leggi tutto" PHP 0
L mettere un simbolo per capire se è un sottomenu jQuery 2
Shyson [WordPress] Mettere un limite a lunghezza caratteri WordPress 11
Shyson [WordPress] Mettere classe css WordPress 0
Shyson Mettere span davanti a php PHP 9
F [VENDO] Inviti a mettere mi piace alla vostra pagina facebook! Annunci servizi di Social Media Marketing 10
Shyson Mettere contaviste ai miei articoli PHP 1
A Come mettere il target _blank in un parser xml in php? PHP 1
A Come mettere al sicuro un Cloud Server? Cloud Computing e Cloud Server 1
Shyson Mettere spazio a codice PHP 3
A Miglior hosting per mettere su internet un sito HTML? Hosting 3
A posso mettere i miei contenuti di un sito usa in un sito in australia SEO e Posizionamento 2
P mettere al centro i bottoni HTML e CSS 10
V Quando mettere il JOIN e quando no? MySQL 1
I Vendo 32.000 Inviti a mettere mi piace alle pagine/Invito Eventi Annunci servizi di Social Media Marketing 0
R Mettere la possibilità di Salvare in un gioco =) Come si fa? Java 2
C è illegale mettere sul proprio portfolio online i siti fatti sotto contratto? Discussioni Varie 5
max_400 Hosting gratuito dove mettere giochi in flash Hosting 2
M Mettere un'immagine come header HTML e CSS 1
Shyson Mettere più valori in una variabile PHP 1
Shyson Mettere css jQuery 1
E Mettere come Selected l'opzione di un select option, tramite il dato di una query. Javascript 2
A consiglio su come mettere in evidenza un contenuto Webdesign e Grafica 0
Shyson Mettere target="_top" PHP 0
Mauro Guardiani chi sa dove mettere questo codice Tubular jQuery plugin Javascript 1
Shyson Mettere "I più visti" nel sito Snippet PHP 0
Shyson Mettere script nel Database PHP 0
Shyson Mettere nel sito "I più visti" PHP 9
S Come mettere Menu a tendina in un modello CSS? HTML e CSS 0
F mettere online foto di persone, si può? Leggi, Normative e Fisco 2
Shyson Mettere alt e title in immagine nel css HTML e CSS 2
Shyson Mettere hover a css in linea HTML e CSS 1
Shyson Mettere immagine per chiudere popup HTML e CSS 1
P Mettere in una riga i record di una colonna MySQL 0
Shyson Mettere url collegato al radio HTML e CSS 20

Discussioni simili