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