![]()
ziao
zono alle prese con un form in php post,
come fazzio ad accettare solo numeri nel campo "telefono" e solo testo con la "@" nel campo email???
mi fate zapere?
zi zono articoli/threads al riguardo?
grazie
![]()
ziao
zono alle prese con un form in php post,
come fazzio ad accettare solo numeri nel campo "telefono" e solo testo con la "@" nel campo email???
mi fate zapere?
zi zono articoli/threads al riguardo?
grazie
solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...
espressioni regolari
se cerchi nel forum dovresti trovarne già pronte
![]()
Errare humanum est, perseverare ovest
![]()
vado documentarmi...
solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...
ok, questi sono gli script che fanno al mio caso:
per il campo email:
if ($email == "" || (!ereg(".+\@.+\..+", $email)) || (!ereg("^[a-zA-Z0-9_@.-]+$", $email)))
{
echo "Attenzione! Non hai compilato il campo $email" ;
}
per il campo telefono:
if ($tel == "" || (eregi("[a-z]", $tel)))
{
echo "Attenzione! Non hai compilato il campo $tel" ;
}
![]()
solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...
if ($email == "" || (!ereg(".+\@.+\..+", $email)) || (!ereg("^[a-zA-Z0-9_@.-]+$", $email)))
mi sa che non è tanto utile questo controllo...
$email=="" questo lo controllano già le due regexp.
.+\@.+\..+ ,questo dice che nel campo email ci può essere qualunque carattere basta che ci sia anche (almeno)una chiocciola e un punto,anche qualcosa tipo @@...@@@....
^[a-zA-Z0-9_@.-]+$ questo indica che la stringa deve essere formata da almeno un carattere di qualunque genere,ad esempio accetta #%.
prova ad esempio con "^[\w\._-]+@([\w_-]+\.)+[a-z]{2,}$",non è il massimo ma è almeno un inizio
anche il controllo del telefono è un colabrodo
[a-z] serve a controllare che nella stringa ci sia una lettera ,e non tiene conto di altri caratteri, ma questo !"£$%&/()#@ non mi pare un numero di telefono,eppure passa il controllo...
prova con "^(\+)?[0-9]+[/ -]?[0-9]+$" ,che dovrebbe accettare numeri tipo:
3289999999
+393289999999
328/9999999
328 03203200
+39345-234523452
ovviamente il controllo è if(!eregi(eccetera..
attento che se uno mette per numero 09oooiup3j gli esce il messaggio "attenzione!non hai compilato il campo 09oooiup3j"VVoVe:
ok grazie, l'email va meglio così:
if ($email == "" || (!ereg(".+\@.+\..+", $email)) || (!ereg("^[\w\._-]+@([\w_-]+\.)+[a-z]{2,}$", $email)))
ma il tel no, e poi [a-z] mi funziona al contrario:
if ($tel == "" || (eregi("[a-z]", $tel)))
mi serve ad escludere i numeri...
![]()
solo alla stregua di un sogno mi troverò, e non vorrò più svegliarmi...
Prova pure questa funzione per il controllo dell'email: http://www.devpro.it/code/2.html :TheGoodCoders:![]()
Per il controllo sul campo $tel potresti provare una cosa similecodice:if( preg_match('/^[\d]+$/', trim($tel)) ) { // valido, solo caratteri numerici } else { // non valido }
basta soltanto il controllo che ti ho messo io(meglio ancora quello suggerito da neida,che poi è di un altro utente del forum,anrd3a), i primi due controlli sono completamente superflui.[supersaibal]Originariamente inviato da cybergiaggia
ok grazie, l'email va meglio così:
if ($email == "" || (!ereg(".+\@.+\..+", $email)) || (!ereg("^[\w\._-]+@([\w_-]+\.)+[a-z]{2,}$", $email)))
[/supersaibal]
bastava leggere meglio il mio post precedente,nell'ultima riga....[supersaibal]
ma il tel no, e poi [a-z] mi funziona al contrario:
if ($tel == "" || (eregi("[a-z]", $tel)))
mi serve ad escludere i numeri...
[/supersaibal]
if (! eregi("[a-z]", $tel))