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. 2011-2012
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";
$stringa1=substr($php, 15, 4);
echo
$stringa1;
//returns "Prep“
$stringa2=substr($php, 15);
echo
$stringa2;
//returns " Preprocessor“
?>
$php[0]=P, $php[1]=H, $php[2]=P, $php[3]=:
$php[4]= ,
$php[5]=H, $php[6]=y, $php[7]=p, $php[8]=e, $php[9]=r, $php[10]=t, $php[11]=e, $php[12]=x,
$php[13]=t,
$php[14]= ,
$php[15]=P, $php[16]=r, $php[17]=e, $php[18]=p, $php[19]=r, $php[20]=o, $php[21]=c, $php[22]=e,
$php[23]=s, $php[24]=s, $php[25]=o, $php[26]=r
Corso di Informatica A.A. 2011-2012
Laurea Triennale - Comunicazione&Dams - Unical
PHP
Operatori logici (riepilogo)
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. 2011-2012
Laurea Triennale - Comunicazione&Dams - Unical
PHP
Operatori logici
Esercizio precedente rivisto utilizzando gli operatori logici.
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
Pagina principale
<html> <head> <title>PHP Test HTML</title> </head>
<body>
<FORM method="post" action=“Codice.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>
Corso di Informatica A.A. 2011-2012
Laurea Triennale - Comunicazione&Dams - Unical
PHP
Operatori logici
Pagina secondaria: Codice.php
<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"];
$lunghezzaPWD = strlen($password );
$posizioneMENO = strpos($password ,"-");
$posizioneChiocciola = strpos($password ,"@");
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. 2011-2012
Laurea Triennale - Comunicazione&Dams - Unical
PHP
Esercizio: traccia
Data la FORM:
Nome, Cognome, Codice 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 "@" in III posizione
3. Il campo codice deve essere della forma <InizialeNome, -,
sequenzaCaratteriNumerici> e deve essere più lungo di 6
caratteri
Corso di Informatica A.A. 2011-2012
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.php">
Nome: <INPUT type="text" name="nome"><BR>
Cognome: <INPUT type="text" name="cognome"><BR></TD>
Codice: <INPUT type="text" name=“cod">
E-mail: <INPUT type="text" name=“email"><BR>
<INPUT type="submit" value=Invia>
<INPUT type="reset" value=Annulla>
</FORM>
</body></html>
Corso di Informatica A.A. 2011-2012
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>PCodice: </B> <?PHP echo $_POST[“cod"]; ?><BR>
<B>E-mail: </B>
<?PHP echo $_POST[“email"]; ?><BR><BR><BR>
<B>1- Il nome non deve contenere numeri<BR></B>
<?PHP
$nome = $_POST["nome"];
$controllo_nome = is_numeric($nome );
if($controllo_nome == true)
{ echo "Il nome non contiene numeri, NOME CORRETTO"; }
else
{echo "Nome non Corretto";}
?>
Corso di Informatica A.A. 2011-2012
Laurea Triennale - Comunicazione&Dams - Unical
PHP
Esercizio: svolgimento
<BR><B>2-La mail deve contenere il carattere "@“in III posizione</B><BR>
<?PHP
$email = $_POST[“email"];
$posiz_chioc= strpos($email, "@") ;
if ($posiz_chioc != 3)
{ 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 "-“ , è >6 ed inizia con la stessa lettera del
nome</B><BR>
<?PHP
$cod = $_POST["cod"];
$nome = $_POST["nome"];
$lunghezzaCod = strlen($cod );
$caratteriDopoMeno = substr($cod,2);
$controllo_pwd= is_numeric($caratteriDopoMeno) ;
if (($controllo_pwd == true) and ($lunghezzaCod >6) and ($cod [0]==$nome[0]) )
{echo "codice corretto: dopo - compare<BR> ";
echo $caratteriDopoMeno;
echo “ e il codice è maggiore di 6 caratteri}
else {echo “codice non buono";}
?>
</BODY></HTML>
Corso di Informatica A.A. 2011-2012
Laurea Triennale - Comunicazione&Dams - Unical
Scarica

slide - Dipartimento di Matematica e Informatica