Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala [email protected] Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Esercizio: traccia ES1 Data la form: Anno di nascita, Nome, password, Scrivere un programma Php che verifichi le seguenti condizioni: 1. Il campo anno di nascita deve essere un numero Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP L’enunciato if Pagina principale <html> <head> <title>PHP Test HTML</title> </head> <body> <FORM method="post" action=“pasSec-es2.php"> Nome: <INPUT type="text" name="nome"><BR> Anno di nascita: <INPUT type="text" name="anno"><BR> Password: <INPUT type="text" name=“pwd"><BR> <INPUT type="submit" value="Invia"> <INPUT type="reset" value="cancella"> </FORM> </body> </html> Pagina secondaria <html> <head> <title>PHP Test HTML</title> </head> <body> <H3>Verifica che la stringa anno sia un numero</H3> <?PHP $anno = $_POST["anno"]; $ris = is_numeric($anno); if($ris == true) echo "L'Anno è un numero<BR>"; else echo "L'anno deve essere un numero!!!<BR>"; ?> </body> </html> Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Esercizio: traccia ES2 Data la form: Anno di nascita, Nome, password, Scrivere un programma Php che verifichi le seguenti condizioni: 1. Il nome contenga almeno 2 caratteri Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Pagina principale <html> <head> <title>PHP Test HTML</title> </head> <body> <FORM method="post" action=“pasSec-es2.php"> Nome: <INPUT type="text" name="nome"><BR> Anno di nascita: <INPUT type="text" name="anno"><BR> Password: <INPUT type="text" name=“pwd"><BR> <INPUT type="submit" value="Invia"> <INPUT type="reset" value="cancella"> </FORM> </body> </html> Pagina secondaria <html> <head> <title>PHP Test HTML</title> </head> <body> <H3>Verifica che il nome contenga almeno 2 caratteri</H3> <?PHP $nome= $_POST["nome"]; $nomeSenzaSpazi = trim($nome); $lunghezza = strlen($nomeSenzaSpazi); echo "Lunghezza nome: $lunghezza"; if ($lunghezza < 2) echo " Nome non valido!"; else echo " Nome OK!"; ?> </body> </html> Corso di Informatica A.A. 2010-2011 L’enunciato if Laurea Triennale - Comunicazione&Dams - Unical PHP Esercizio: svolgimento Pagina principale: <HTML> <HEAD> <title>Registrazione</title> </HEAD> <body> <h2>Inserisci i tuoi dati per registrarti</h2> <FORM method="post" action="controlli-stringhe.php"> Nome: <INPUT type="text" name="nome"><BR> Cognome: <INPUT type="text" name="cognome"><BR></TD> Password: <INPUT type="text" name="pwd"> contiene il carattere – seguito da soli numeri </I><BR> E-mail: <INPUT type="text" name="mail"><BR> <INPUT type="submit" value=Invia> <INPUT type="reset" value=Annulla> </FORM> </body></html> La pagina principale è indipendente da come viene realizzato il programma php Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Esercizio: traccia ES2 Data la form: Nome, cognome, password ed email, Scrivere un programma Php che verifichi le seguenti condizioni: 1. Verifica che la password sia valida. Il password è valida se: è lunga almeno 6 caratteri (esclusi gli spazi inizio fine) , contiene il carattere – in seconda posizione ed il carattere @ in terza posizione FORMULARE UNA VERSIONE DEL PROGRAMMA USANDO SOLO LA STRUTTURA DI CONTROLLO IF ED UNA VERSIONE CHE USA ANCHE L’OPERATORE AND Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Programmi SOLUZIONE CON LA SOLA STRUTTURA DI CONTROLLO IF Pagina secondaria <html> <head> <title>PHP Test HTML</title> </head> <body> <H3>Verifica che ila password sia validoa la password è valida se: è lunga almeno 6 caratteri (esclusi gli spazi), contiene il carattere – in seconda posizione ed il carattere @ in terza posizione</H3> I dati inseriti sono:<BR> <UL> <LI>Nome: <?PHP echo $_POST["nome"] ?></li> <LI>Cognome: <?PHP echo $_POST["cognome"] ?></li> <LI>Email: <?PHP echo $_POST[" mail "] ?></li> <LI>Password: <?PHP echo $_POST["pwd"] ?></li> </UL> <?PHP $password = $_POST["pwd"]; $pwdSenzaSpazi = trim($password); $lunghezzaPWD = strlen($pwdSenzaSpazi); if($lunghezzaPWD >=6) { $posizioneMENO = strpos($pwdSenzaSpazi,"-"); if($posizioneMENO ==2) { $posizioneChiocciola = strpos($pwdSenzaSpazi,"@"); if($posizioneChiocciola ==3) echo "la password è valida"; else echo "la password Non è valida, deve contenere il carattere @ in posizione 3"; } else echo "la password Non è valida, deve contenere il carattere - in posizione 2"; }else echo "la password ha una lunghezza inferiore a 6 caratteri. Non valida"; ?> </body> </html> Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Operatori logici SOLUZIONE CON OPERATORE LOGICO AND Pagina secondaria <html> <head> <title>PHP Test HTML</title> </head> <body> <H3>Verifica che il codice sia valido. Il codice è valido se: è lungo almeno 6 caratteri (esclusi gli spazi), contiene il carattere – in seconda posizione ed il carattere @ in terza posizione</H3> I dati inseriti sono:<BR> <UL> <LI>Nome: <?PHP echo $_POST["nome"] ?></li> <LI>Cognome: <?PHP echo $_POST["cognome"] ?></li> <LI>Email: <?PHP echo $_POST[" mail "] ?></li> <LI>Password: <?PHP echo $_POST["pwd"] ?></li> </UL> <?PHP $password = $_POST["pwd"]; $pwdSenzaSpazi = trim($password); $lunghezzaPWD = strlen($pwdSenzaSpazi); $posizioneMENO = strpos($pwdSenzaSpazi,"-"); $posizioneChiocciola = strpos($pwdSenzaSpazi,"@"); if($lunghezzaPWD >=6 and $posizioneMENO ==2 and $posizioneChiocciola ==3) { echo "la password è valida"; } else echo "la password ha una lunghezza inferiore a 6 caratteri. Non valida"; ?> </body> </html> Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Operatori logici CONSIDERAZIONI La soluzione ottenuta sfruttando l’operatore AND è più chiara (leggibilità del codice) ed è più breve. La leggibilità del codice è una caratteristica molto importante perché consente al programmatore di avere una visione più chiara di cosa fa il programma e, quindi, lo facilita nelle operazioni di manutenzione. Si noti che l’operatore AND può essere scritto anche come && Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical