espressione regolare

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ho bisogno di un piccolo aiuto, per imparae ad usare php+mysql mi sono fatto un form in cui lo pseudo utente deve inserire user e password
per controllare che entrambi siano composti solo da caratteri alfabetici e/o numerici e che siano lunghe da 6 a 12 caratteri mi sono costrutito la seguente funzione (che richiamo con include "folgio_finzioni.php) nel form)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>foglio funzioni</title>
</head>

<body>
<?php

/*----funzioni di controllo----------*/
function convalida_UP($testover){ //verifica correttezza user e password

$testover = trim($testover); //se solo spazi viene svuotata
$caratteri = eregi("^([a-z0-9]{6,12})$",$testover); //verifico che ci siano da 6 a 12 caratteri solo alfabetici o numerici
if ($caratteri) { //i caratteri sono corretti
$quanticar = strlen($testover); //lunghezza della stringa immessa

if ($quanticar >= 6 & $quanticar <= 12) { //la lunghezza è giusta
return "1"; //ritorno users o password formalmente corretti
} elseif ($quanticar < 6) { return "inserire almeno 6 caratteri"; //user o password troppo corta
} elseif ($quanticar > 12) { return "avete superato i 12 caratteri"; // user o password troppo lunga
}//fine if intero a primo if
} else {
return "99999 perche non funziona ancora?"; //in user o password caratteri non ammessi
}//fine primo if
}

?>
</body>
</html>

mi ritorna sempre "9999 perche non funziona..."
secondo me sto sbagliando nell'eregi, ma non capisco dove

grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
scusate ma mi sono accorto di una cosa, lavorando stanotte mi sono fatto la seguente pagina di prova:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>foglio per prove</title>
</head>

<body>
<a href="admin.php">torna ad admin</a>

<?php
function convalida_UP($testover){ //verifica correttezza user e password

//$testover = trim($testover); //se solo spazi viene svuotata
$caratteri = eregi("^([a-z0-9]){6,12}$",$testover); //verifico che ci siano da 6 a 12 caratteri solo alfabetici o numerici
if ($caratteri) { //i caratteri sono corretti
$quanticar = strlen($testover); //lunghezza della stringa immessa

if ($quanticar >= 6 & $quanticar <= 12) { //la lunghezza è giusta
return "<br>è GIUSTO<br>"; //ritorno users o password formalmente corretti
} elseif ($quanticar < 6) { return "<br>inserire almeno 6 caratteri<br>"; //user o password troppo corta
} elseif ($quanticar > 12) { return "<br>avete superato i 12 caratteri<br>"; // user o password troppo lunga
}//fine if intero a primo if
} else {
return "<br>caratteri non ammessi<br>"; //in user o password caratteri non ammessi
}//fine primo if
}

//$convalida= convalida_UP("aaabbb000"); //esatto
//$convalida= convalida_UP("aaa"); //troppo corto
//$convalida= convalida_UP("aaabbb0009999"); //troppo lungo
$convalida= convalida_UP("aaa...b000"); //caratteri non ammessi
echo $convalida;

?>



</body>
</html>

commentando la riga con la funzione TRIM la funzione funziona decomnetando no.
ma la funzione trim non toglie solo gli spazi iniziali e finali? (almeno così è scritto nel manuale ufficiale)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
chiedo UMILMENTE perdono non era colpa di eregi ne di trim, ma...MIA.
solo dopo che ho fatto il diagramma di flusso su carta mi sono reso conto di aver fatto un errore di logica "chi troppo in alto (vuole) salire cade sovente...."
scusate
 

Discussioni simili