⊗ppPmSDDb 442 of 447 menu

Motore basato su database in PHP

Ora creiamo un motore per sito web in cui il contenuto delle pagine non sarà memorizzato in file, ma in un database. Supponiamo che nel database abbiamo una tabella come questa:

pages
id title content
1 title1 <div> content1 </div>
2 title2 <div> content2 </div>
3 title3 <div> content3 </div>

Supponiamo di voler ottenere le nostre pagine tramite URL come /page/1, dove il numero rappresenterà l'id della pagina che vogliamo ottenere.

Iniziamo l'implementazione. Per prima cosa in un file separato creiamo una connessione al database e colleghiamo questo file al nostro:

<?php $link = require 'connect.php'; ?>

Otteniamo l'URL richiesto:

<?php $url = $_SERVER['REQUEST_URI']; ?>

Utilizzando un'espressione regolare, dividiamo l'URL in parti:

<?php preg_match('#/page/(\d+)#', $url, $match); ?>

Salviamo l'id dalla cattura in una variabile:

<?php $id = $match[1]; ?>

Eseguiamo una query al database, ottenendo tramite l'id la pagina richiesta:

<?php $query = "SELECT * FROM pages WHERE id=$id"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); $page = mysqli_fetch_assoc($res); ?>

Otteniamo il file del template:

<?php $layout = file_get_contents('layout.php'); ?>

Nel file del template eseguiamo l'inserimento del titolo e del contenuto:

<?php $layout = str_replace('{{ title }}', $page['title'], $layout); $layout = str_replace('{{ content }}', $page['content'], $layout); ?>

Inviamo la pagina assemblata al browser:

<?php echo $layout; ?>

Mettiamo tutto insieme e otteniamo il seguente codice:

<?php require 'connect.php'; $url = $_SERVER['REQUEST_URI']; preg_match('#/page/(\d+)#', $url, $match); $id = $match[1]; $query = "SELECT * FROM pages WHERE id=$id"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); $page = mysqli_fetch_assoc($res); $layout = file_get_contents('layout.php'); $layout = str_replace('{{ title }}', $page['title'], $layout); $layout = str_replace('{{ content }}', $page['content'], $layout); echo $layout; ?>

Implementate il motore descritto. Verificate il suo funzionamento.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta