La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Php e MySQLPhp e MySQL PhpMyAdminPhpMyAdmin Smarty templateSmarty template Interazione tra basi di dati e web Francesco Brancati –

Presentazioni simili


Presentazione sul tema: "Php e MySQLPhp e MySQL PhpMyAdminPhpMyAdmin Smarty templateSmarty template Interazione tra basi di dati e web Francesco Brancati –"— Transcript della presentazione:

1 Php e MySQLPhp e MySQL PhpMyAdminPhpMyAdmin Smarty templateSmarty template Interazione tra basi di dati e web Francesco Brancati – Cristina Pucci –

2 Interazione tra basi di dati e web Php e MySQL2 Gestire intere sezioni di siti web in modo semplice e veloce –Gestione efficiente: possibilità di effettuare modifiche frequenti di contenuto ed eventualmente di veste grafica Ci vengono in aiuto i linguaggi di programmazione orientati al web publishing come Php –Php ottimo per la creazione di pagine dinamiche, ma non offre nessuna possibilità di memorizzazione dei dati Soluzione: utilizzare parallelamente un linguaggio di programmazione e un database

3 Interazione tra basi di dati e web Php e MySQL3 Connessione al database: config.inc.php Parametri per la connessione: –host: da cui si può raggiungere MySQL (generalmente è localhost) –username e password: per l'accesso al database –nome del database. Questi parametri vengono forniti dall'amministratore dello spazio web

4 Interazione tra basi di dati e web Php e MySQL4 config.inc.php (1) Creiamo una pagina di nome config.inc.php con i parametri necessari:

5 Interazione tra basi di dati e web Php e MySQL5 config.inc.php (2) config indica che il file contiene dei dati relativi alla configurazione dello script..inc ci ricorderà che questo file non è una pagina che verrà visualizzata direttamente, ma verrà inclusa all'interno di altre..php invece viene inserito per motivi di sicurezza. Se qualcuno cercherà di visualizzare questa pagina con il browser, vedrà solo una pagina vuota.

6 Interazione tra basi di dati e web Php e MySQL6 Connessione al database: connect.inc.php Possiamo realizzare la connessione al db attraverso la funzione mysql_connect. Creiamo una pagina di nome connect.inc.php da includere in ogni file che effettua una operazione sul db

7 Interazione tra basi di dati e web Php e MySQL7 connect.inc.php Se la connessione ha buon esito restituisce un identificatore alla connessione in $db Se la connessione non va a buon fine viene restituito FALSE. Dobbiamo specificare su quale database vogliamo lavorare e verificare nuovamente la riuscita dell'operazione: mysql_select_db($db_name, $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); ?>

8 Interazione tra basi di dati e web Php e MySQL8 Creazione delle tabelle: install.php Dopo aver creato la connessione possiamo finalmente agire sul database Il file install.php crea le tabelle necessarie al funzionamento dellapplicazione Le query vengono comunicate al database attraverso la funzione mysql_query : $query = "CREATE TABLE news ( "."id INT (5) UNSIGNED not null AUTO_INCREMENT, "."titolo VARCHAR (255) not null, "."testo TEXT not null, "."data INT (11), "."autore VARCHAR (50), "."mail VARCHAR (50), ".PRIMARY KEY (id))";

9 Interazione tra basi di dati e web Php e MySQL9 install.php Se si verifica un errore durante lesecuzione della query, questo viene visualizzato con la funzione mysql_error() if (mysql_query($query, $db)) echo "L'installazione è stata eseguita correttamente"; else echo " Installazione fallita: ".mysql_error()." durante l'esecuzione della query:".$query; include(disconnect.inc.php " ); ?>

10 Interazione tra basi di dati e web Php e MySQL10 Connessione al database: disconnect.inc.php Al termine dello script è sempre bene terminare la connessione al database includendo il file disconnect.inc.php :

11 Interazione tra basi di dati e web Php e MySQL11 Intestazione e piè di pagina: top_foot.inc.php Creiamo una pagina top_foot.inc.php con i codici html che caratterizzano la veste grafica. News

12 Interazione tra basi di dati e web Php e MySQL12 Creazione del modulo: insert.php Creiamo il modulo per l'inserzione degli articoli: insert.php –questa pagina contiene la form necessaria a raccogliere i dati –non ci sono accessi al database –separazione tra interfaccia grafica e interazione con db

13 Interazione tra basi di dati e web Php e MySQL13 Titolo: Data: $i"; ?> insert.php (1)

14 Interazione tra basi di dati e web Php e MySQL14 insert.php (2) Gennaio Febbraio... Dicembre

15 Interazione tra basi di dati e web Php e MySQL15 insert.php (3) Autore: Testo: Password:

16 Interazione tra basi di dati e web Php e MySQL16 Inserimento nel database: save.php Creiamo la pagina save.php –controllo della password –controllo dei campi not null –controllo ed escaping dei caratteri particolari dentro le stringe –conversione delle date in formato timestamp –connessione al db e esecuzione della query

17 Interazione tra basi di dati e web Php e MySQL17 save.php (1)

18 Interazione tra basi di dati e web Php e MySQL18 save.php (2) $titolo = addslashes(stripslashes($titolo)); $autore = addslashes(stripslashes($autore)); $mail = addslashes(stripslashes($mail)); $testo = addslashes(stripslashes($testo)); $titolo = str_replace("<", "<", $titolo); $titolo = str_replace(">", ">", $titolo); $autore = str_replace("<", "<", $autore); $autore = str_replace(">", ">", $autore); $testo = str_replace("<", "<", $testo); $testo = str_replace(">", ">", $testo); $testo = nl2br($testo); $data = mktime("0", "0", "0", $mese, $giorno, $anno);

19 Interazione tra basi di dati e web Php e MySQL19 save.php (3) $db = mysql_connect($db_host, $db_user, $db_password); if ($db == FALSE) die ("Errore nella connessione. Verificare i parametri nel file config.inc.php"); mysql_select_db($db_name, $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php"); $query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";

20 Interazione tra basi di dati e web Php e MySQL20 Visualizzazione degli ultimi articoli: index.php Si estraggono dal db i titoli degli articoli tramite mysql_query() La funzione ci restituisce un identificatore nella variabile $result Si scorre riga per riga il risultato dellinterrogazione tramite mysql_fetch_assoc(), che ci restituisce un array associativo Si visualizzano gli articoli

21 Interazione tra basi di dati e web Php e MySQL21 index.php

22 Interazione tra basi di dati e web Php e MySQL22 Visualizzione dell'articolo completo: view.php Si estrae dalla tabella la riga corrispondente allarticolo interessato Si visualizzano le informazioni

23 Interazione tra basi di dati e web Php e MySQL23 view.php

24 Interazione tra basi di dati e web Php e MySQL24 Elenco di tutti gli articoli: all.php Si stabilisce quanti titoli visualizzare per pagina Si estraggono dal db i solo i titoli necessari per la pagina corrente

25 Interazione tra basi di dati e web Php e MySQL25 all.php (1)

26 Interazione tra basi di dati e web Php e MySQL26 all.php (2) 0) { $start_back = $start - $step; echo " precedenti "; } ?>

27 Interazione tra basi di dati e web Php e MySQL27 all.php (3)

28 Interazione tra basi di dati e web Php e MySQL28 Il motore di ricerca: search.php – result.php Creiamo una form per immettere le parole da cercare Supponiamo le chiavi divise da virgole ed usiamo la funzione array explode (string separator, string string [, int limit]); per ottenere un array di chiavi Per ogni chiave facciamo una ricerca nel titolo, nel testo, e nellautore Visualizziamo i risultati

29 Interazione tra basi di dati e web Php e MySQL29 search.php

30 Interazione tra basi di dati e web Php e MySQL30 result.php

31 Interazione tra basi di dati e web PhpMyAdmin31 PhpMyAdmin PhpMyAdmin è un'interfaccia grafica che permette di amministrare MySql Con PhpMyAdmin, possiamo: –Visualizzare il contenuto del nostro database –Creare, modificare, cancellare database, intere tabelle o singoli record –Fare un backup (dump) dei dati contenuti –Importare grosse quantità di dati in diversi formati cvs, excel, sql… –Visualizzare informazioni interessanti sul db –Gestire gli utenti di MySQL ed i loro privilegi

32 Interazione tra basi di dati e web PhPMyAdmin32 Home Page

33 Interazione tra basi di dati e web PhPMyAdmin33 Struttura database

34 Interazione tra basi di dati e web PhPMyAdmin34 Struttura tabella

35 Query SQL

36 Interazione tra basi di dati e web PhPMyAdmin36 Dump

37 Interazione tra basi di dati e web PhPMyAdmin37 Dump (2)

38 Interazione tra basi di dati e web Smarty38 Cos'è Smarty? Smarty è un motore di template per PHP Consente di separare logica e contenuto dell'applicazione dalla sua presentazione/layout –Programmatore e progettista non sono la stessa persona Possibilità di apportare modifiche alla struttura logica dellapplicazione senza dover modificare il layout grafico e viceversa –Il programmatore (che si occupa della logica applicativa) può modificare il suo codice senza chiedere aiuto al grafico e viceversa

39 Interazione tra basi di dati e web Smarty39 Compilazione dei template Smarty legge i file dei template Crea script PHP a partire da questi –una volta creati, questi script vengono eseguiti da quel momento in poi Vantaggio: si evita una costosa analisi dei template ad ogni richiesta

40 Interazione tra basi di dati e web Smarty40 Funzionalità di Smarty E' estremamente veloce E' efficiente, perché è l'analizzatore di PHP a fare il "lavoro sporco" Non c'è sovraccarico per l'analisi del template, che viene compilato una sola volta E' abbastanza furbo da saper ricompilare solo i template che sono stati modificati Si possono creare funzioni personalizzate e modificatori di variabili personalizzati –Ciò rende il linguaggio dei template estremamente estensibile La sintassi dei tag di delimitazione dei template è configurabile –Si possono usare {}, {{}},, ecc E' consentito nidificare in maniera illimitata sezioni, test, ecc E' possibile incorporare direttamente codice PHP nei file di template –Sebbene non dovrebbe essercene bisogno Supporto nativo al caching Funzioni personalizzate di gestione della cache Architettura a plugin

41 Interazione tra basi di dati e web Smarty41 Sintassi Il concetto della programmazione con i template è semplice: –nel codice Php si definiscono variabili per lutilizzo nel template –nel template si visualizzano queste variabili index.php include('Smarty.class.php'); // crea loggetto $smarty = new Smarty; // assegna un contenuto ad una variabile. // NB. di solito il contenuto è assegnato dinamicamente. $smarty->assign('name', 'mario rossi'); $smarty->assign('address', 'via forlì 42'); // lo visualizza $smarty->display('index.tpl');

42 Interazione tra basi di dati e web Smarty42 Sintassi Il concetto della programmazione con i template è semplice: –nel codice php si definiscono variabili per lutilizzo nel template –nel template si visualizzano queste variabili index.tpl output Info Utente Utente: Name: {$name} Address: {$address} Info Utente Utente: Name: mario rossi Address: via forlì 42

43 Interazione tra basi di dati e web Smarty43 Modificatori delle variabili Sono usati per modificare loutput di una variabile, una funzione utente o una stringa da dentro il template Per applicare un modificatore bisogna indicare il valore seguito da | (pipe) e dal nome del modificatore Un modificatore può accettare parametri addizionali che modificano il suo comportamento –Questi parametri seguono il nome del modificatore e sono separati da : (due punti)

44 header.tplfooter.tpl {$title|default:"no title"} index.tpl output {include file="header.tpl" title="Info Utente"} Utente: Name: {$name|capitalize} Address: {$address|escape:htmlall} Date: {$smarty.now|date_format: "%Y-%m-%d"} {include file="footer.tpl"} Info Utente Utente: Name: Mario Rossi Address: via forlì 42 Date:

45 Interazione tra basi di dati e web Smarty45 La funzione include Permette luso delle variabili locali –nellesempio precedente la variabile $title non è definita direttamente nel template ma è passata come parametro della funzione include() –così facendo $title può essere cambiata dinamicamente ogni volta che si include il file header.tpl Usando il modificatore default è possibile dichiarare un valore predefinito nel caso la variabile non sia definita nella include()

46 Interazione tra basi di dati e web Smarty46 Generare un elenco di dati Si crea un array con i dati da elencare e si passa al template Nel template si cicla sullarray tramite il costrutto section Con la funzione cycle values alterniamo lo sfondo $smarty->assign('name', array('franco','marco','joe','lucia','carla')); {section name=mysec loop=$name} {$name[mysec]} {/section}

47 Interazione tra basi di dati e web Smarty47 Generare un elenco di dati Loutput generato è questo: franco marco joe lucia carla

48 Interazione tra basi di dati e web Risorse48 Risorse


Scaricare ppt "Php e MySQLPhp e MySQL PhpMyAdminPhpMyAdmin Smarty templateSmarty template Interazione tra basi di dati e web Francesco Brancati –"

Presentazioni simili


Annunci Google