PHP - Dipartimento di Matematica e Informatica UNICAL
Transcript
PHP - Dipartimento di Matematica e Informatica UNICAL
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 Funzioni predefinite substr(stringa, intero): restituisce una porzione della stringa, in base al secondo parametro (che indica l'inizio della porzione da estrarre). Es: <?php $php = "PHP: Hypertext Preprocessor"; echo substr($php, 15, 4); //returns "Prep“ ?> • ucfirst(stringa) trasforma in maiuscolo il primo carattere della stringa. Restituisce la stringa modificata. Es: <?php $foo = 'hello world!'; $foo = ucfirst($foo); // Hello world! ?> • ucwords(stringa) trasforma in maiuscolo il primo carattere di ogni parola della stringa, intendendo come parola una serie di caratteri che segue uno spazio. Restituisce la stringa modificata. Es: <?php echo ucwords("hello world"); ?> //Hello World • Stampe colorate: in php è possibile stampare dei messaggi colorati. Per fare questo si usano i tag html all’interno del messaggio dato da echo. Ad esempio: echo '<FONT color="Red">'. "Ciao questa stampa è di colore rosso </FONT>"; stamperà il messaggio “Ciao questa stampa è di colore rosso" • Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Operatori logici Vengono usati per stabilire se alcune condizioni si verificano oppure no. OPERATORE AND è un operatore binario, ovvero si applica a due operandi. Op1 AND op2 Op1 Op2 AND true true True false true False false False False true false False Esempio (AND): Abbiamo le due variabili $a e $b. If($a>2 and $b==3) fai qualche cosa ………………………………………………….. Significa che «se è vero che il valore contenuto nella variabile $a è maggiore di 2 e (allo stesso tempo) il valore contenuto nella variabile $b è uguale a 3» allora la condizione espressa nel controllo if è vera e dobbiamo eseguire tutte le istruzioni comprese nel ramo if. In tutti gli altri casi la condizione espressa nel controllo if ritorna false, quindi non dobbiamo eseguire il blocco di istruzioni presenti ne ramo if. OPERATORE OR è un operatore binario, ovvero si applica a due operandi. Op1 OR Op2 Op1 Op2 OR Esempio (OR): Abbiamo le due variabili $a e $b. true True True If($a>2 or $b==3) true False True false True True false false false fai qualche cosa ………………………………………………….. Significa che «se è vero che il valore contenuto nella variabile $a è maggiore di 2 oppure (non necessariamente entrambe, ma almeno uno delle due deve essere vera) se il valore contenuto nella variabile $b è uguale a 3» allora la condizione espressa nel controllo if è vera e dobbiamo eseguire tutte le istruzioni comprese nel ramo if. Con la OR l’unico caso in cui la condizione espressa dal controllo if è falsa si ha quando entrambi gli operandi sono false. Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Operatori logici Esercizio della precedente lezione rivisto utilizzando gli operatori logici. 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); $posizioneMENO = strpos($pwdSenzaSpazi,"-"); $posizioneChiocciola = strpos($pwdSenzaSpazi,"@"); if($lunghezzaCodice<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 Ciclo While Consente di eseguire un blocco di istruzioni un certo numero di volte. While(condizione) { <blocco istruzioni } ESEMPIO $i = 1; while ($i <= 10) { echo $i; $i++ } Esegue 10 volte la stampa del valore della variabile $i. Si noti che ad ogni passo la variabile $i viene modificata, ovvero il suo valore viene incrementato di 1 $i++ Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Ciclo While: programma php Pagina principale <html> <head> <title>PHP Test HTML</title> </head> <body> <FORM method="post" action="es1.php"> <INPUT type="submit" value="Invia"> </FORM> </body> </html> Pagina secondaria <html> <head> <title>PHP Test HTML</title> </head> <body> <?PHP $i = 1; echo "il valore della variabile prima del ciclo while è uguale a $i"; while ($i <= 10) { echo "<br>il valore di i è: $i"; $i++; } echo "<br>il valore della variabile dopo del ciclo while è uguale a $i"; ?> </body> </html> Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Esercizio: traccia ES1 Data la form: Nome, cognome, password ed email, Scrivere un programma Php che verifichi le seguenti condizioni: 1. Il campo nome non deve contenere numeri 2. Il campo email deve contenere il carattere "@" 3. Il campo password deve essere della forma <InizialiNome, -, sequenzaCaratteriNumerici> Corso di Informatica A.A. 2010-2011 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> Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical PHP Esercizio: svolgimento Pagina secondaria <HTML> <HEAD> <TITLE>Riepilogo Dati</TITLE> </HEAD> <BODY> <H1>Riepilogo Dati</H1> <B>Nome: </B><?PHP echo $_POST["nome"]; ?> <BR> <B>Cognome: </B><?PHP echo $_POST["cognome"]; ?> <BR> <B>Password: </B><?PHP echo $_POST[“pwd"]; ?><BR> <B>E-mail: </B><?PHP echo $_POST["mail"]; ?><BR><BR><BR> <B>1- Il nome non deve contenere numeri<BR></B> <?PHP $nome = $_POST["nome"]; $lunghezza = strlen($nome); $cont = 0; $noNumb = true; while($cont < $lunghezza){ if (is_numeric($nome[$cont])) { $noNumb = false; } $cont = $cont+1; } if($noNumb == true) echo "Il nome non contiene numeri, NOME CORRETTO"; else echo "Nome Corretto"; ?> <BR><B>2-La mail deve contenere il carattere "@"</B><BR> <?PHP $mail = $_POST["mail"]; if (strpos($mail, "@") == false) echo "Il carattere @ non è presente nel codice!<BR>"; else { echo "E-mail corretto<BR>"; } ?> <B>3-Verifico che la password contiene solo numeri dopo il carattere "-"</B><BR> <?PHP $cod = $_POST["cod"]; $caratteriDopoMeno = substr($cod,2); if (is_numeric($caratteriDopoMeno) == false) echo "Dopo il carattere - deve comparire un numero<BR>"; else { echo "codice corretto: dopo - compare<BR> "; echo $caratteriDopoMeno; } ?> </BODY></HTML> Corso di Informatica A.A. 2010-2011 Laurea Triennale - Comunicazione&Dams - Unical