Sintassi PHP
Le principali istruzioni di PHP, con codice da scricare
INTRODUZIONE AL PHP: istruzioni principali
Nato nel 1994 PHP = “PHP: “Hypertext Preprocessor”.
E’ un linguaggio di programmazione nato per sviluppare applicazioni web lato server
PHP lavora anche con i data Base, dove sono immagazzinati dati. Un linguaggio Server Side.
Un sito statico comprende le informazioni descritte con il linguaggio HTML, non vi è nessuna intearzione con l’utente, ma solo visualizzazione
Un sito dinamico invece mostra delle informazioni che sono il risultato di una interrogazione con utente. In questo modo in funzione delle richieste dell’utente, possono essere mostrate informazioni diverse.
Un sito dinamico è quindi ad alta interazione con utente.
Si parte da siti con form, prenotazioni per arrivare a siti E-commerce.
Noi costruiremo un sito Ecommerce e descrivo in queste pagine il codice PHP usato.
In sintesi un Client interroga un server, che interagisce con un DB, ritornando le informazioni in funzione delle richieste
Ecco perché per usare PHP servono: • Un server tipo apache • Un data base MYSQL relazionale
In codice PHP deve essere scritto tra due tag
<?php = tag di apertura
?> = tag di chiusura
Quindi per inserire del codice PHP in una pagina HTML, questo va scritto tra i due tag di apertura e chiusura.
Include
Con questa istruzioneinclude('header.php');
E’ come se si copiasse e incollasse in codice scirtto in header.php
Ecco perche un file php è scritto come
include('header.php');
include('menu.php');
include('corpo.php');
include('footer.php');
Dove:
• header.php: è la parte iniziale, tipicamente <head></head>
• menu.php: è il menu comune a tutte le pagine
• corpo.php: la parte specifica di una pagina, diversa tra pagina e pagina
• footer.php: la parte finale di una pagina web comune a tutte le pagine
Echo
echo ('<h3>Ecco la la mia prima frase in php</h3>');
serve per stampare a video la frase contenuta tra apici. Notare il tag h3.
Variabili
Ecco un esempio:
$x = 24;
echo ("la temperatura di oggi $x gradi");
echo ("la temperatura di oggi è ".$x."gradi");
le variabili oltre che numeriche possono essere testo
$testo="testo..";
Oppure booleane : $aperto = true;
Controllo if
if (condizione è vera){
..codice
} else {
Altro codice
}
Array
$allievi = array("Gabriele", "Davide", "Federico", "Andrea", "Angelo");
Vengono cosi’ immagazzinate una serie di informazioni, nell’array = $allievi
Ogni informazione è individuata in base alla posizione
L’array ha 5 campi che partono dalla posizione 0 – fino alla posizione 4 Così le istruzioni:
echo ($allievi[0]."
");
echo ($allievi[1]."
");
echo ($allievi[2]."
");
echo ($allievi[3]."
");
echo ($allievi[4]."
");
Stampano i 5 campi dell’array a partire dalla posizione 0= Gabriele, fino alla posizione 4 = Angelo
Per stampare il contenuto di un array, si usa l’istruzione print_r
Cicli
-------------------
for($i=0;$i<=2; $i++ ){
echo ("
$allievi[$i] ama il PHP!!
");
}
------------------------
$i=1; //valore iniziale
while ($i<=10) {
echo("$i A me piace il PHP...
");
$i++;
}
------------------------
$allievi = array(
'Gabriele' => 29,
'Davide' => 30,
'Federico' => 23,
'Andrea' => 26,
'Angelo' => 24
);
foreach ($allievi as $allievo => $eta)
{
echo "L'allievo" . $allievo . " ha " . $eta . " anni
";
}
Come si vede l’istruzione Foreach è una istruzione per scandagliare in contenuto di un array.
Il gioco dei dadi con PHP e i cicli
$roll = 0;
while ($roll != 6) {
$roll = rand(1, 6);
echo '<p>c e\' ' . $roll . '</p>';
if ($roll == 6) {
echo '<p>hai vinto!</p>';
} else {
echo '<p>peccato non hai vinto,
Prova ancora!</p>';
}
}
Date
$attuale=date("d-m-Y h:i:sa");
echo "l'ora attuale; ".$attuale."
";
//Stampa l’ora attuale in formato giorno/mese/anno insieme ora/minuti/secondi
//time stamp now
$timestamp_attuale=time();
echo "time stamp: ".$timestamp_attuale."
";
timestamp corrisponde al numero di secondi trascorsi da una data convenzionale conosciuta come Unix Epoch (1 Gennaio 1970).
Get e Post
Questi due metodi servono per trasmettere dei dati ad una pagina php che li dovrà elaborare/utilizzare.Ad esempio pensiamo ad un form, dove l’utente inserisce dei dati necessari per il login ad una pagina riservata, attraverso un interfaccia grafica Html.
Questi dati dovranno essere elaborati in una pagina php per verificare se sono contenuti in un database.
Per passare i dati dal form alla pagina php ,si usano sia il metodo GET che POST
GET
<a href="cart.php?piu=<?php echo $id ?>">Con questa istruzione passiamo al file cart.php la variabile $id, attraverso l’informazione più
Nel file cart.php raccolglo questa informazione con la variabile globale
$_GET['piu']
L’informazione comparirà nella barra del browser!!
POST
Tipicamente usata per i form:
<form action="cart.php" method="post">
<input name="qty" type="text" name="nome_input" size="3" maxlength="2" />
<input name="id_qta" type="hidden" value="" name=”nascosto”/>
<input name="modifica_qta" type="submit" size="3" />
</form >
Quando viene schiacchiato <input type=”hidden”>,
vengono inviate al file cart.php con il metodo POST(indicato in
<form action="cart.php" method="post">), le informazioni.
• scritte dall’utente nell’ input chiamato name="nome_input"
• la variabile $id valore dell’input hidden (nascosto)
Il file cart.php utilizza tali informazioni, attraverso
-$_POST[‘nome_input’];
-$_POST[‘nascosto’];
Sessioni e Cookies
- cookies: sono dati salvati permanentemente in locale sul tuo pc (a meno che non scadano o non vengano ripuliti da te: pulire la cache);
- session: i dati nelle variabili di sessione hanno validità solo all'interno di una sessione, se la sessione scade (timeout) o viene chiusa dall'utente i valori delle variabili di sessione vengono.
NB : i cookies sono soggetti alla normativa privacy
Creare cookies e sessione
Per creare un cookie
setcookie("email_log",1,time()+86400);
Dove:
-email_log = nome cookie
-1= valore.
Tale valore potrebbe anche essere impostato con una variabile
In questo caso
setcookie("email_log", $var, time()+86400);
Per creare una sessione
$_SESSION['id'] = $variabile
Come si vede la sessione ha un valore derivato da una variabile ma non ha un tempo di scadenza ma non ha un tempo di scadenza.
Il cookies ha un valore interno che potremmo utilizzare ma ha un tempo di scadenza.
Per utilizzare i cookies e il loro valore
$nome = $_COOKIE['nome_utente'];
Usare cookies o sessioni
Per usare un cookie e il suo valore
// verifico se il cookie esiste
if (isset($_COOKIE['email_log'])) {
//utilizo il valore del cookies
$nome = $_COOKIE['email_log'];
echo $nome;
}
Cancellare cookies
setcookie("nome_utente", null, time()-3600);
Usare le sessioni
Per usare una sessione e il suo valore
Session_start();
// verifico se il cookie esiste
if (isset($_SESSION['email_log'])) {
//utilizo il valore del cookies
$nome = $_SESSION['email_log'];
echo $nome;
}
Cancellare sessione
session_unset();
session_destroy()
Uso combinato di sessioni e cookies
Session_start();
$cookie_value= $_SESSION[value];
$cookie_name = $_SESSION[name];
setcookie($cookie_name, $cookie_value, time() + (86400 * 30));
Perché usare le sessioni per trasmettere I dati
I cookies hanno un tempo di esistenza mentre le sessioni si estinguono se si chiude il browser /pc oppure se si effettua un settaggio di php.ini Per questo le sessioni sono adatte per trasmettere i dati all’interno del sito Ad esempio nel processo di invio con email e messaggio di invio di successo le sessioni sono piu0 adatte perche’ non scadono
Variabili Globali
In PHP le variabili globali sono:
• $ GLOBALS
• $ _SERVER
• $ _REQUEST
• $ _POST
• $ _GET
• $ _FILES
• $ _ENV
• $ _COOKIE
• $ _SESSION
Stringhe
//determinare la lunghezza della stringa
$stringa = 'istruzione per determinare la lunghezza della stringa';
echo "la lunghezza della stringa è " . strlen($stringa) .; // restituira 54
//stampare solo una parte della stringa
$stringa = 'voglio stampare solo una parte della stringa ';
$giorno = substr($stringa, 7, 8);
echo $giorno . "
"; // ritornerà stampare che comincia nella 7 posizione e lunga 8
// cercare all'interno della stringa
$stringa = 'sono docente di PHP e Magento';
echo "la posizione di PHP nella stringa " . strpos($stringa, 'PHP') ;
// restituirà 16 che è la posizione in cui inizia la stringa PHP
echo "la posizione di Magento nella stringa " . strpos($stringa, 'Magento') ;
// restituirà 22 che è la posizione in cui inizia la stringa Magento
// separare una stringa
$dati = 'i/dati/della/stringa';
print_r(explode('/', $dati));
//restituisce Array ( [0] => i [1] => dati [2] => della [3] => stringa )
//convertire in maiuscolo una stringa
$testo = "testo";
printf(strtoupper($testo)); //ritorna TESTO
// per minuscola strtolower()
//rimuovere gli spazi iniziali e finali
$testo = " rimuovo gli spazi in una una stringa ";
echo trim($testo) ;
Qui un per le stringhe
Funzioni php
Una funzione è un insieme di istruzioni che vengono richiamate, anche passando i parametri di esecuzione
Ecco l’esempio
function moltiplica($a, $b)
{
$c = $a * $b;
return $c;
//echo $risultato;
}
$a = 5;
$b = 6;
echo "moltiplicando $a per $b il risultato è = " . moltiplica($a, $b);
Importante notare l’istruzione return