Corso di Informatica
Laurea Triennale - Comunicazione&Dams
Dott.ssa Adriana Pietramala
[email protected]
Corso di Informatica A.A. 2010-2011
Laurea Triennale - Comunicazione&Dams - Unical
PHP
Esercizio: traccia
ES1
Data la form:
Anno di nascita, Nome, password,
Scrivere un programma Php che verifichi le seguenti condizioni:
1. Il campo anno di nascita deve essere un numero
Corso di Informatica A.A. 2010-2011
Laurea Triennale - Comunicazione&Dams - Unical
PHP
L’enunciato if
Pagina principale
<html> <head> <title>PHP Test HTML</title> </head>
<body>
<FORM method="post" action=“pasSec-es2.php">
Nome: <INPUT type="text" name="nome"><BR>
Anno di nascita: <INPUT type="text" name="anno"><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 la stringa anno sia un numero</H3>
<?PHP
$anno = $_POST["anno"];
$ris = is_numeric($anno);
if($ris == true)
echo "L'Anno è un numero<BR>";
else
echo "L'anno deve essere un numero!!!<BR>";
?>
</body>
</html>
Corso di Informatica A.A. 2010-2011
Laurea Triennale - Comunicazione&Dams - Unical
PHP
Esercizio: traccia
ES2
Data la form:
Anno di nascita, Nome, password,
Scrivere un programma Php che verifichi le seguenti condizioni:
1. Il nome contenga almeno 2 caratteri
Corso di Informatica A.A. 2010-2011
Laurea Triennale - Comunicazione&Dams - Unical
PHP
Pagina principale
<html> <head> <title>PHP Test HTML</title> </head>
<body>
<FORM method="post" action=“pasSec-es2.php">
Nome: <INPUT type="text" name="nome"><BR>
Anno di nascita: <INPUT type="text" name="anno"><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 nome contenga almeno 2 caratteri</H3>
<?PHP
$nome= $_POST["nome"];
$nomeSenzaSpazi = trim($nome);
$lunghezza = strlen($nomeSenzaSpazi);
echo "Lunghezza nome: $lunghezza";
if ($lunghezza < 2)
echo " Nome non valido!";
else
echo " Nome OK!";
?>
</body>
</html>
Corso di Informatica A.A. 2010-2011
L’enunciato if
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>
La pagina principale è indipendente da come viene realizzato il programma php
Corso di Informatica A.A. 2010-2011
Laurea Triennale - Comunicazione&Dams - Unical
PHP
Esercizio: traccia
ES2
Data la form:
Nome, cognome, password ed email,
Scrivere un programma Php che verifichi le seguenti condizioni:
1. Verifica che la password sia valida. Il password è valida se: è lunga almeno 6 caratteri (esclusi gli spazi inizio fine) , contiene il
carattere – in seconda posizione ed il carattere @ in terza posizione
FORMULARE UNA VERSIONE DEL PROGRAMMA USANDO SOLO LA STRUTTURA DI CONTROLLO IF ED UNA VERSIONE CHE USA
ANCHE L’OPERATORE AND
Corso di Informatica A.A. 2010-2011
Laurea Triennale - Comunicazione&Dams - Unical
PHP
Programmi
SOLUZIONE CON LA SOLA STRUTTURA DI CONTROLLO IF
Pagina secondaria
<html> <head> <title>PHP Test HTML</title> </head> <body>
<H3>Verifica che ila password sia validoa la password è valida se: è lunga 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>Email: <?PHP echo $_POST[" mail "] ?></li>
<LI>Password: <?PHP echo $_POST["pwd"] ?></li>
</UL>
<?PHP
$password = $_POST["pwd"];
$pwdSenzaSpazi = trim($password);
$lunghezzaPWD = strlen($pwdSenzaSpazi);
if($lunghezzaPWD >=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
Operatori logici
SOLUZIONE CON OPERATORE LOGICO AND
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>Email: <?PHP echo $_POST[" mail "] ?></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($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. 2010-2011
Laurea Triennale - Comunicazione&Dams - Unical
PHP
Operatori logici
CONSIDERAZIONI
La soluzione ottenuta sfruttando l’operatore AND è più chiara (leggibilità del codice) ed è più breve. La leggibilità del codice è
una caratteristica molto importante perché consente al programmatore di avere una visione più chiara di cosa fa il programma
e, quindi, lo facilita nelle operazioni di manutenzione.
Si noti che l’operatore AND può essere scritto anche come &&
Corso di Informatica A.A. 2010-2011
Laurea Triennale - Comunicazione&Dams - Unical
Scarica

slide - Dipartimento di Matematica e Informatica