Proff. Stasio C. - Conti R. - VG
informatica 1
Introduzione al linguaggio PHP Hypertext preprocessor
Lato client: vuol dire che le operazioni
programmate vengono svolte e visualizzate direttamente sul computer dell'utente collegato
Lato server: vuol dire che le operazioni programmate vengono svolte su server è successivamente visualizzate sul computer
del'utente collegato
Proff. Stasio C. - Conti R. - VG
informatica 2
• Un Web server non è altro che un
software installato in un server con la funzione di elaborare pagine web e
generare dinamicamente contenuti.
Le semplici pagine .htm non necessitano di particolari interventi da parte del
Web server, il loro codice viene
interpretato dal browser del computer client
• per questo l'html è definito come un linguaggio client side.
Proff. Stasio C. - Conti R. - VG
informatica 3
PHP può essere usato per molteplici usi:
- Controllare i contenuti
(CMS – Content Management Sistem) - Interrogare un database
- Fruire servizi
Proff. Stasio C. - Conti R. - VG
informatica 4
Affinchè PHP sia utilizzabile su di una pagina web, è necessario intergrarlo con la base del web HTML.
Database PHP HTML
HTML
Proff. Stasio C. - Conti R. - VG
informatica 5
• Il web server (solitamente Apache) ospita un "motore" che interpreta le istruzioni PHP e restituisce la pagina al client
• Il codice, una volta interpretato, non viene mostrato nel file html
restituito all'utente !!!!!!!
Proff. Stasio C. - Conti R. - VG
informatica 6
• Essendo interpretato lato server, non è in grado di interagire con gli eventi del client.
• Una volta caricato il file, per eseguire una nuova istruzione PHP è necessaria una nuova richiesta al server (un reload o una nuova pagina)
Proff. Stasio C. - Conti R. - VG
informatica 7
• PHP necessita di una nuova richiesta al server per eseguire operazioni. Per
controllare i campi della form sarà quindi necessario l'invio del modulo.
L'utente dovrà attendere il caricamento di una nuova pagina
Proff. Stasio C. - Conti R. - VG
informatica 8
Per riconoscere PHP in un documento è
sufficiente un sguardo, ogni codice PHP inizia con
<?php e termina con
?>
Proff. Stasio C. - Conti R. - VG
informatica 9
• Funzione ECHO
visualizza il contenuto di una variabile o di una stringa specificata tra apici
<?php echo “VOLTA”; ?>
Proff. Stasio C. - Conti R. - VG
informatica 10
• Esempio di Echo
• Echo “pippo”; che stamperà a video pippo
• $nome = “franco”;
• Echo $nome; che stamperà a video franco
Proff. Stasio C. - Conti R. - VG
informatica 11
EXIT() DIE()
• Le due funzioni che esaminiamo sono exit() e die(); entrambe producono il risultato di arrestare l'esecuzione
dello script, con la differenza che die() consente anche di stampare un messaggio.
Proff. Stasio C. - Conti R. - VG
informatica 12
• Le funzioni exit() e die() possono
essere utilizzate, quindi, per gestire eventuali situazioni di errore che non consentono di proseguire l'esecuzione del nostro script PHP (i cosiddetti
"errori fatali"). In queste circostanze può essere conveniente usare die()
per mostrare un messaggio di errore appropriato.
Proff. Stasio C. - Conti R. - VG
informatica 13
• La maggior parte dei linguaggi di
programmazione non usa un carattere speciale per identificare il nome delle variabili;
• nel PHP questo carattere è il simbolo del dollaro (‘$’) da inserire all’inizio del nome
Proff. Stasio C. - Conti R. - VG
informatica 14
• Le variabili in PHP non hanno bisogno di essere dichiarate, poiché la
dichiarazione avviene nel momento in cui alla variabile viene assegnato un valore;
• inoltre non è necessario definirne il tipo, questo significa che una variabile che
contiene un numero può essere
interpretata sia come numero che come testo.
Proff. Stasio C. - Conti R. - VG
informatica 15
• Variabili
<?php
$nomescuola = “Volta”; STRINGA
$civico = 81; INTERO
echo $nomescuola.” “.$civico; STAMPA A VIDEO
?>
RISULTATO A VIDEO Volta 81
Proff. Stasio C. - Conti R. - VG
informatica 16
L’interazione con l’utente
• Una delle caratteristiche dei
linguaggi di scripting è data dalla
possibilità di interagire con l’utente che utilizza una pagina web.
• L’interazione avviene attraverso i moduli HTML (form)
Proff. Stasio C. - Conti R. - VG
informatica 17
<form method="post" action="connetti.php" name="form">
Host: <input type="text" size="30" name="host"><br>
User: <input type="text" size="30" name="user"><br>
Pass: <input type="password" size="30" name="pswd"><br>
Nome: <input type="text" size="30" name="nomedb"><br>
<input name="submit" type="submit" name="connessione"
value="Connetti">
L’attributo method ha il compito di indicare al browser quale metod utilizzare per inviare i campi inseriti al WEB SERVER
Proff. Stasio C. - Conti R. - VG
informatica 18
• UTILIZZANDO IL METODO GET I
DATI INSERITI IN INPUT VENGONO VISUALIZZATI SULLA RIGA
INDIRIZZI CON TUTTI I PERICOLI DEL CASO !!!!!!!!!!!!!!!!!!!!!
• IL METODO POST OCCULTA I DATI INSERITI
Proff. Stasio C. - Conti R. - VG
informatica 19
<html>
<head>
<title>Connessione al database tramite un form</title>
<center><strong>Connessione al database tramite un form col metodo POST</strong></center>
<hr>
<center>
<form method="post" action="connetti.php" name="form">
Host: <input type="text" size="30" name="host"><br>
User: <input type="text" size="30" name="user"><br>
Pass: <input type="password" size="30" name="pswd"><br>
Nome: <input type="text" size="30" name="nomedb"><br>
<input name="submit" type="submit" name="connessione" value="Connetti">
</center>
</body>
</html>
FORM DI INSERIMENTO DATI
CONNESSIONE.PHP
Proff. Stasio C. - Conti R. - VG
informatica 20
<html>
<head>
<title>Connessione al database tramite un form</title>
<body>
<center><strong>Connessione al database tramite un form col metodo POST</strong></center>
<hr>
<center>
//////$_POST['...'] è la funzione che permette di recuperare i valori da un form HTML ////////
<?php
if($_POST) {
$db_host=$_POST['host'];
$db_user=$_POST['user'];
$db_pswd=$_POST['pswd'];
$db_name=$_POST['nomedb'];
$dir = $_SERVER["DOCUMENT_ROOT"];
$file = $_SERVER["SCRIPT_NAME"];
CONNETTI.PHP
Proff. Stasio C. - Conti R. - VG
informatica 21
$connessione =
@mysql_connect($db_host,$db_user,$db_
pswd) or die
("<br \>Non è possibile connettersi al database!");
$db =
@mysql_select_db($db_name,$connession e)or die
("Database inesistente");
Proff. Stasio C. - Conti R. - VG
informatica 22
echo ("<br \>Sei connesso correttamente al database con l'user <b><u>$db_user</u></b>, la password
<b><u>$db_pswd</u></b> all'host <b><u>$db_host</u></b>");
echo ("<br \><br \>Questo file '<b><u>$file</u></b>' si trova in:
'<b><u>$dir</u></b>' ");
}?>
</center>
</body>
</html>
Proff. Stasio C. - Conti R. - VG
informatica 23
Variabili predefinite
Il PHP possiede un gran numero di variabili predefinite , create
direttamente dall’interprete PHP e sono raggruppate nei seguenti array
Proff. Stasio C. - Conti R. - VG
informatica 24
Variabili predefinite
• $_GET : contiene variabili passate allo script tramite un form con
modalità GET
• $_POST: contiene variabili passate allo script tramite un form con
modalità POST
Proff. Stasio C. - Conti R. - VG
informatica 25
• $_SERVER:contiene le variabili passate allo script dal server web
Proff. Stasio C. - Conti R. - VG
informatica 26
• La pagina che riceve i dati
– $uname = strtolower(trim($_POST['uname']));
– $passw = strtolower(trim($_POST['passw']));
– $_POST['...'] è la funzione che permette di
recuperare i valori da un form HTML come quello precedente
– La funzione strtolower permette di eliminare il Case Sensitive ovvero di convertire tutte le lettere in
minuscolo
– La funzione trim permette di eliminare gli spazi, che non sono consentiti sia negli username che nelle
password
Proff. Stasio C. - Conti R. - VG
informatica 27
• La funzione strtolower permette di eliminare il Case Sensitive ovvero di
convertire tutte le lettere in minuscolo
• Se l'utente scrive CaMiNo, la stringa:
strtolower('CaMiNo') restituirà camino
Proff. Stasio C. - Conti R. - VG
informatica 28
• La funzione trim permette di eliminare gli spazi, che non sono consentiti sia negli
username che nelle password
• Se l'utente scrive “ pippo “, la stringa:
trim(' pippo ') restituirà “pippo”
Proff. Stasio C. - Conti R. - VG
informatica 29
STRTOUPPER
• strtolower('CaMiNo')
restituirà CAMINO
Proff. Stasio C. - Conti R. - VG
informatica 30
• Una volta recuperati i dati, avremo due variabili $uname e $passw sulle quali
possiamo agire in vari modi
• Possiamo confrontarle con i contenuti di un database
• Possiamo visualizzare a video
• E altre operazioni possibili
Proff. Stasio C. - Conti R. - VG
informatica 31
Connessione ad DB
• Ci sono vari parametri che servono per connettersi ad un database
• $_CONFIG['host'] = "localhost";
$_CONFIG['host'] = "62.149.150.52";
• $_CONFIG['user'] = "volta";
• $_CONFIG['pass'] = "psvolta";
• $_CONFIG['dbname'] = "voltadb";
Proff. Stasio C. - Conti R. - VG
informatica 32
• $_CONFIG['host'] = "localhost";
$_CONFIG['host'] = "62.149.150.52";
indica la posizione fisica del database
• $_CONFIG['user'] = "volta";
indica l'utente che accede al database
• $_CONFIG['pass'] = "psvolta";
indica la password dell'utente
• $_CONFIG['dbname'] = "voltadb";
indica il nome del database a cui accedere
Proff. Stasio C. - Conti R. - VG
informatica 33
• Ci vuole anche una stringa di connessione
$conn = @mysql_connect($_CONFIG['host'],
$_CONFIG['user'], $_CONFIG['pass']) or die('Impossibile stabilire una connessione');
@mysql_select_db($_CONFIG['dbname']);