La pagina destinata all'inserimento dei post è il cuore dell'applicazione blog engine, consente infatti di scrivere gli articoli che verranno pubblicati sul sito Web e che eventualmente verranno commentati dagli utenti che frequentano il blog.
Si tratta di una pagina riservata, infatti ad essa potranno accedere soltanto gli utenti autenticati tramite la procedura di login descritta in precedenza, traducendo tecnicamente quanto appena detto, per poter accedere alla pagina di scrittura dei post sarà necessario che esista una sessione attiva, altrimenti il browser verrà reindirizzato verso la prima pagina del front-end.
Di seguito viene presentato il codice necessario per l'inserimenti degli articoli:
<?php // inizializzazione della sessione session_start(); // controllo sul valore di sessione if (!isset($_SESSION['login'])) { // reindirizzamento alla homepage in caso di login mancato header("Location: index.php"); } // valorizzazione delle variabili con i parametri dal form if(isset($_POST['submit'])&&($_POST['submit']=="Scrivi")){ if(isset($_POST['autore'])){ $autore = addslashes(filter_var($_POST['autore'], FILTER_SANITIZE_STRING)); } if(isset($_POST['titolo'])){ $titolo = addslashes(filter_var($_POST['titolo'], FILTER_SANITIZE_STRING)); } if(isset($_POST['testo'])){ $testo = addslashes(filter_var($_POST['testo'], FILTER_SANITIZE_STRING)); } // inclusione del file della classe include "funzioni_mysql.php"; // istanza della classe $data = new MysqlClass(); // chiamata alla funzione di connessione $data->connetti(); $t = "post"; # nome della tabella $v = array ($titolo,$testo,$autore,date("Y-m-d")); # valori da inserire $r = "titolo_post,testo_post,autore_post,data_post"; # campi da popolare // chiamata alla funzione per l'inserimento dei dati $data->inserisci($t,$v,$r); echo "Articolo inserito con successo."; // disconnessione $data->disconnetti(); }else{ // form per l'inserimento ?> <h1>Inserimento post:</h1> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> Titolo:<br> <input name="titolo" type="text"><br /> Testo:<br> <textarea name="testo" cols="30" rows="10"></textarea><br /> Autore:<br> <input name="autore" type="text"><br /> <input name="submit" type="submit" value="Scrivi"> </form> <? } ?>
Il meccanismo che consente la pubblicazione dei post è molto semplice:
- se sono stati inviati i parametri di input (titolo, testo e autore del post) viene lanciata la fase di inserimento dei valori nella tabella, diversamente verrà visualizzato il form necessario per la scrittura dell'articolo;
- i dati inviati vengono trasformati in variabili che contengono i valori da inserire in tabella;
- oltre ai campi titolo, testo e autore è necessario popolare anche il campo relativo alla data di stesura, quest'ultimo è caratterizzato dal tipo di dato DATE che prevede un formato per le date "anno-mese-giorno", quindi per creare il valore da inserire viene richiamata la funzione
date()
di PHP che registra la data corrente sulla base dei parametri passati come argomento, nel caso specifico vengono passati come parametri "Y" (anno in quattro cifre), "m" (numero del mese preceduto da "0" se formato da una sola cifra, ad esempio "09" per settembre) e "d" (giorno del mese preceduto da "0" se formato da una sola cifra, ad esempio "01" per il primo giorno del mese). - Le variabili relative ai parametri inviati vengono passate alla funzione
inserisci()
per la popolazione della tabella, una volta eseguita la query diINSERT
viene chiusa la connessione al DBMS in modo da liberare risorse per il sistema