Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala a.pietramala@mat.unical.it Dott.ssa Maria Vittoria Avolio avoliomv@unical.it
Costrutto if con più istruzioni All interno del ramo if e/o ramo else viene inserita più di una istruzione. In questo caso bisogna utilizzare le parentesi graffe }, come mostrato di seguito: If(condizione) esegui istruzione 1; esegui istruzione 2; esegui istruzione n; } else esegui istruzione 1; esegui istruzione 2;. esegui istruzione m; }
Funzioni predefinite strtolower(stringa) converte tutti i caratteri alfabetici nelle corrispondenti lettere minuscole. Restituisce la stringa modificata. strtoupper(stringa) converte tutti i caratteri alfabetici nelle corrispondenti lettere maiuscole. Restituisce la stringa modificata. strpos(stringa1, stringa2) cerca la prima occorrenza della seconda stringa stringa2 all'interno della prima. Restituisce un intero che rappresenta la posizione a partire da 0 della stringa cercata. Se la seconda stringa non è presente nella prima, restituisce il valore booleano FALSE. stripos(s,s) fa la stessa ricerca di strpos senza tenere conto della differenza fra maiuscole e minuscole.
Esempi ES1 Stringa1= ARCOBALENO 10 caratteri, dalla posizione 0 alla posizione 9 Stringa2= BALENO Strposverifica se la stringa BALENO è presente nella strina ARCOBALENO e, in caso affermativo, restituisce la posizione di partenza di BALENO in Stringa1, ovvero 4. NB: Strpos fa una ricerca ESATTA, tenendo conto anche delle lettere maiuscole e minuscole ES2 Stringa1= ARCObALeNO 10 caratteri, dalla posizione 0 alla posizione 9 Stringa2= BALENO Strposverifica se la stringa BALENO è presente nella strina ARCOBALENO e, in caso affermativo, restituisce la posizione di partenza di BALENO in Stringa1. In questo caso la ricerca fallisce. NB: Strpos fa una ricerca ESATTA, tenendo conto anche delle lettere maiuscole e minuscole ES3 Stringa1= ARCOBALENO 10 caratteri, dalla posizione 0 alla posizione 9 Stringa2= baleno Striposverifica se la stringa balenoè presente nella strina ARCOBALENO e, in caso affermativo, restituisce la posizione di partenza di baleno in Stringa1, ovvero 4. NB: Strpos NON fa una ricerca ESATTA, non tiene conto di maiuscole e minuscole
Programmi Pagina principale <html> <head> <title>php Test HTML</title> </head> <body> <FORM method="post" action="pagsec-es1.php"> Nome: <INPUT type="text" name="nome"><br> Cognome: <INPUT type="text" name="cognome"><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 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>Password: <?PHP echo $_POST["pwd"]?></li> </UL> <?PHP $password = $_POST["pwd"]; $pwdsenzaspazi = trim($password); $lunghezzapwd = strlen($pwdsenzaspazi); if($lunghezzacodice<6) }else $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"; echo "la password ha una lunghezza inferiore a 6 caratteri. Non valida";?> </body> </html>
Tracce esercizi ES1 Riformulare l esercizio precedente utilizzando gli operatori logici (AND, OR, NOT), laddove necessario. ES2 Data la form: Nickname, password e email Scrivere un programma Php che verifichi le seguenti condizioni: 1. Il campo email deve contenere il carattere @ 2. Il campo Nickname deve essere lungo almeno 8 caratterei e deve contenere il carattere oppure # 3. Il campo password deve contenere solo numeri e deve essere lungo almeno 6 caratteri Scrivere due versioni del programma, utilizzando if innestati e con operatori logici.