Newsgroup: it.comp.www.php
Titolo: espressione regolare

Volevo controllare gli input inseriti nel form di login con le spressioni 
regolari.
SU internet ho trovato questo:
if( (!preg_match('/^[A-Za-z0-9]{6,33}$/',$_POST['pwd'])) and  (!preg_match
('/^[A-Za-z0-9]{6,25}$/',$_POST['login'])) )
ma non va!! :(
Qualcuno sa aiutarmi!
Vorrei che in fasi di login possano essere specificate solo lettere, 
quindi nessun carattere speciale, ecc...
grazie

 ma non va!! :(
Che cosa intendi per "non va"?
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista PHP/MySQL?
Vieni a fare uno stage con noi: 
http://www.creativepark.it/stage/

allora il problema è questo, ho provata a rifarla ma usando ereg e il 
controllo dovrebbe essere:
if (( (ereg("^[A-Za-z0-9]$",$_POST['pwd'])) and (ereg("^[A-Za-z0-9]$",
$_POST['login'])) )){	
echo "testo buono";
}else{ echo "non buono";}
ma mi da non buono sia che io usi per testo pippo, sia $£%&pippo//
per il secondo è normale, ma perchè per il primo anche?
grazie

 grazie
a me sembra che manchi un . prima del dollaro, così com'è accetta
stringhe di lunghezza 1 e basta

 stringhe di lunghezza 1 e basta
ovviamente volevo dire un asterisco :(

RedWiz wrote:

o forse un '+'? Magari un '*'? Le regexp vanno studiate, un semplice
cut&paste da internet serve a poco... Il fatto che poi limitare user e pwd
(soprattutto pwd) ad un ACSII subset sia male, be, questo è un altro
discorso. Io darei un'occhiata a mysql_real_escape_string (o equivalenti),
e magari ti togli il "problema" delle regexp (almeno per ora :)
-- 
g4b0, linux user n. 369000
http://gabo.homelinux.com

 cut&paste da internet serve a poco...
?????
ma dici a me?
ho confuso il punto con l'* e mi sono corretto un minuto dopo, no, non
dici a me...

ottimo...funziona, se ora volessi aggiungerci una limitazione sul minimo 
numero di lettere e max, come dovrei scriverlo?
grazie

si avevo visto ma non trattano caratteri speciali come % _ ecc...mentre 
così io ottengo solo lettere!
Cmq grazie

 numero di lettere e max, come dovrei scriverlo?
è la regexp che hai postato all'inizio (che noto solo adesso avere
quel {6,33} che al post successivo hai omesso)


Fai riferimento ad un buon sito... ti leggi 3-4 pagine di spiegazione
ed'è fatta
http://php.html.it/articoli/leggi/851/espressioni-regolari/
dovresti usare na cosa semplice tipo
[[:alpha:]] indica qualsiasi lettera, maiuscola o minuscola
hehe
http://digilander.libero.it/barcaitalia
http://www.giopreziosi.com

non capisco dove va l'intervallo:
"^[A-Za-z0-9]{6,25}+$"???
non va mi da un errore:
Warning: ereg() [function.ereg]: REG_BADRPT in autenticazione.php on line 
28
anche se lo metto tra ]{
grazie

 "^[A-Za-z0-9]{6,25}+$"???
questa NON È quella che hai messo all'inizio, potresti almeno fare piu'
attenzione?

pardon...grazie mille ora tutto è ok!

RedWiz wrote:

No, no.. mi riferisco ovviamente all'OP!!






Occhio, che ho il dubbio che alcune librerie regexp non supportino {x,y}.
Prova a vedere se "xxxxxx" e' riconosciuto da
	/x*/
	/xx*/
	/x+/
	/x{2,}/
	/x{,9}/
	/x{2,9}/
In teoria dovrebbero matchare tutte. In teoria.
Leonardo
--
The stars have not dealt me the worst they could do:
My pleasures are plenty - my troubles are two.
But oh!, my two troubles, they reave me of rest: