PHP (if, strtolower, strtoupper, strpos, stripos)
Transcript
PHP (if, strtolower, strtoupper, strpos, stripos)
Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Adriana Pietramala [email protected] Dott.ssa Maria Vittoria Avolio [email protected] Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP 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; } Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP 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. Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Esempi ES1 Stringa1= ARCOBALENO 10 caratteri, dalla posizione 0 alla posizione 9 Stringa2= BALENO Strpos verifica 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 Strpos verifica 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 Stringa2= bALEnO 10 caratteri, dalla posizione 0 alla posizione 9 Stripos verifica 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 Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP 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) { $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 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. Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical