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