Il server web che riceve la richiesta di accesso ad una cartella apre, per default, la pagina index.php contenuta in quella cartella.
In questo esempio lo script contenuto nella pagina index.php estrae da un data base i link da mostrare nella pagina.
L'amministratore di quella sezione del sito possiede una pagina di gestione delle pubblicazioni: l'operazione di pubblicazione consiste nel registrare nel data base il link che deve apparire nella pagina iniziale e a trasferire il file nella cartella del sito.
La pagina di amministrazione crea quattro form, ciascuno dei quali con un pulsante per richiamare un particolare script.
Le operazioni consentite sono la creazione e la distruzione del database, e l'inserimento o la cancellazione di un articolo nel data base.
<html>
<head>
<title>Amministrazione Articoli e commenti alle notizie</title>
</head>
<body>
<h2>Istituto Tecnico Industriale "F. Giordani"</h2>
<h2>Anno scolastico 2011-2012</h2>
<ul>
<li><form method="post" action="CreaDBart.php">
Crea il data base, se non esiste <input value="-->" type="Submit" /></form></li>
<li><form method="post" action="eliminaDBart.php">
Elimina il data base <input value="-->" type="Submit" /></form></li>
<li><form method="post" action="nuovoArticolo.htm">
Inserisci un nuovo articolo <input value="-->" type="Submit" /></form></li>
<li><form method="post" action="cancellaArt.php">
Cancella una comunicazione <input value="-->" type="Submit" /></form></li>
</ul>
</body>
</html>
Lo script richiama il server mysql.
<html>
<head>
<title>Commenti ai fatti del giorno</title>
</head>
<body>
<h2>Istituto Tecnico Industriale "F. Giordani"</h2>
<h2>Anno scolastico 2011-2012</h2>
<?php
require("account.php");
// - - - - Creazione del database - - - - - - - - - - - - - -
$con = mysql_connect($Sweb,$utente,$pw);
if (!$con) {
die('Impossibile connettersi al Server Web: ' . mysql_error());
}
Viene eseguita la query di creazione del database e viene comunicato l'esito dell'operazione.
// il data base viene creato:
$nomeDB = "Articoli";
if (mysql_query("CREATE DATABASE $nomeDB", $con)) {
echo "Database creato";
} else {
echo "Impossibile creare il database: " . mysql_error();
}
La tabella del database contiene le informazioni per classificare un articolo: l'autore, la data, il nome del file da trasferire al server, nel quale ci sarà il contenuto dell'articolo, il testo descrittivo e il collegamento per aprire la pagina con l'articolo.
// - - - - - - - - - - usa il data base - - - - - - - - - - - -
mysql_select_db($nomeDB, $con);
// - - - - - - - creazione della tabella - - - - - - - - - - -
$sql = "CREATE TABLE Articoli (
IDcom int PRIMARY KEY AUTO_INCREMENT,
Autore varchar(20),
dataPub date,
nomeFile varchar(30),
testo varchar(255),
linkA varchar(255)
)";
$esito = mysql_query($sql,$con);
if ($esito) echo "<br />creata tabella Articoli";
else echo "<br />Non sono riuscito a creare la tabella Articoli";
mysql_close($con);
?>
<br /><br /><a href="amministra.htm">Ritorna</a> alla pagina di amministrazione<br />
</body>
</html>
<?php
$Sweb = "localhost";
$utente = "root";
$pw = "";
?>
In fase di collaudo del programma avverranno frequenti modifiche alla struttura delle tabelle, quindi può essere conveniente avere uno script per eliminare il database.
<html>
<head>
<title>Commenti ai fatti del giorno</title>
</head>
<body>
<h2>Istituto Tecnico Industriale "F. Giordani"</h2>
<h2>Anno scolastico 2011-2012</h2>
<?php
require("account.php");// - - - - Connessione al server web - - - - - - - - - - - - - -
$con = mysql_connect($Sweb,$utente,$pw);
if (!$con) {
die('Impossibile connettersi al Server Web: ' . mysql_error());
}
// - - - - - - query di eliminazione del data base Test - - - - - - - -
$esito = mysql_query("drop database Articoli");
mysql_close($con);
if ($esito) echo "database Articoli eliminato";
else echo "il data base Articoli non esiste";
echo "<br /><br />";
echo "<a href='amministra.htm'>Torna</a> alla pagina di amministrazione</p>"
?>
</body>
</html>
Dopo aver creato il database, l'utente ha la possibilità di pubblicare, a distanza, un articolo.
Lo script gli propone un form con il quale può inviare:
<html>
<head>
<title>Commenti ai fatti del giorno</title>
</head>
<body>
<h2>Istituto Tecnico Industriale "F. Giordani"</h2>
<h2>Anno scolastico 2011-2012</h2>
<b>Modulo di inserimento Articoli</b>
<form method="post" action="nuovoArticolo.php" enctype="multipart/form-data">
<table border=1>
<tr>
<td>Nome del file locale <br />da trasferire:</td>
<td><input type="file" name="fileDaTrasfe"></td>
</tr>
<tr>
<td>Autore:</td>
<td><input type="text" name="persona" value=""></td>
</tr>
<tr>
<td>Testo del link:</td>
<td><input type="text" name="linkA" value =""></td>
</tr>
<tr>
<td>Scrivi il titolo <br />dell'articolo</td>
<td><Textarea name="comm" ROWS="3" COLS="80" WRAP="HARD"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Trasferisci"></td>
</tr>
</table>
</form>
<br /><br />
<p><a href="amministra.htm">Torna</a> alla pagina di amministrazione</p>
</body>
</html>
Lo script richiamato per la pubblicazione della pagina web acquisisce il file e i parametri ricevuti tramite il form. Salva il file nella cartella specificata e registra i dati nella tabella del database.
<html>
<head>
</head>
<body>
<h2>Istituto Tecnico Industriale "F. Giordani"</h2>
<h2>Anno scolastico 2011-2012</h2>
<?php
require("account.php");
// - - - - Creazione del database - - - - - - - - - - - - - -
$con = mysql_connect($Sweb,$utente,$pw);
if (!$con) {
die('Impossibile connettersi al Server Web: ' . mysql_error());
}
// nome del data base
$nomeDB = "Articoli";
// - - - - - - - - - - usa il data base - - - - - - - - - - - -
mysql_select_db($nomeDB, $con);
$autore = $_POST["persona"];
$linkA = $_POST["linkA"];
// $oggetto = $_POST["oggetto"];
$commenti = $_POST["comm"];
$oggi = date("Y/m/d");
$cartella = '..percorso';
$percorso = $_FILES['fileDaTrasfe']['tmp_name'];
$nome = $_FILES['fileDaTrasfe']['name'];
// UPLOAD E CONTROLLO ESITO
if (move_uploaded_file($percorso, $cartella . $nome)) {
print "<br />Il tuo file è stato acquisito.";
} else {
print "<br />Si sono verificati dei problemi durante l'Upload";
}
?>
<!-- fine salvataggio nel file -->
<!-- inizio acquisizione nel data base. -->
?php
$sql = "insert into Articoli (Autore, dataPub, nomeFile, testo, linkA) ";
$sql .= "values('".$autore."', '".$oggi."', '".$nome."', '".$commenti."', '".$linkA."')";
if (mysql_query($sql)) echo "<br />messaggio inserito correttamente";
else "<br />il messaggio non è stato inserito correttamente";
echo "<br /><br />";
echo "<a href='amministra.htm'>Torna</a> alla pagina di amministrazione</p>"
?>
</body>
</html>
La pagina di amministrazione consente di richiamare lo script per eliminare solo un articolo.
Lo script interroga il database ed elenca tutti i record presenti, proponendo un form con caselle di scelta per specificare quale record, con il relativo file, eliminare.
<html>
<head>
<title>Notizie e commenti dei fatti della settimana</title>
</head>
<body>
<h2>Istituto Tecnico Industriale "F. Giordani"</h2>
<h2>Anno scolastico 2011-2012</h2>
<?php
require("account.php");
// - - - - Creazione del database - - - - - - - - - - - - - -
$con = mysql_connect($Sweb,$utente,$pw);
if (!$con) {
die('Impossibile connettersi al Server Web: ' . mysql_error());
}
// nome del data base
$nomeDB = "Articoli";
// - - - - - - - - - - usa il data base - - - - - - - - - - - -
mysql_select_db($nomeDB, $con);
$interroga = "select IDcom, date_format(dataPub,'%d/%m/%Y') as dataPub, Autore, testo from Articoli Order by IDcom desc";
$record = mysql_query($interroga);
echo "<h1>Elenco degli articoli presenti:</h1>";
if (isset($_POST['elimina'])) {
foreach ($_POST['ID'] as $value) {
echo "<br />cancello: ".$value;
$sql = "select nomeFile from Articoli where IDcom=".$value;
$rSet=mysql_query($sql);
$nomeF = mysql_fetch_array($rSet);
$nF = $nomeF['nomeFile'];
if (unlink($nF)) echo "<br />eliminato il file: ".$nF;
else echo "non sono riuscito a cancellare il file: ".$nF;
$sql = "delete from Articoli where IDcom=".$value;
mysql_query($sql);
}
}
echo '<form name="scelta" method="post" action="';
echo $_SERVER['PHP_SELF'].'">';
echo "<table>";
while ($rSet = mysql_fetch_array($record)) {
$ID = $rSet['IDcom'];
$dataPubb = $rSet['dataPub'];
$persona = $rSet['Autore'];
$oggetto = $rSet['testo'];
echo "<tr><td>";
echo '<input type="checkbox" name="ID[]" value='.$ID." />";
echo "$ID";
echo "</td><td>";
echo " data: ".$dataPubb." autore: ".$persona." testo: ".$oggetto;
echo "</td></tr>";
}
echo '<tr><td></td><td><input type="submit" name="elimina" value="elimina selezionati" /></td></tr>';
echo "</table></form>";
echo "<br /><br />";
echo ">p><a href='amministra.htm'>Torna</a> alla pagina di amministrazione</p>";
echo "</body></html>";
?>
Il visitatore del sito richiama la pagina index.php, la quale interroga il data base e costruisce una pagina con i link alle pagine specificate da ciascun record letto dalla tabella.
<?php
echo "<html><head><title>Commenti alle notizie</title>";
echo "</head><body>";
require("account.php");
$con = mysql_connect($Sweb,$utente,$pw);
if (!$con) {
die('Impossibile connettersi al Server Web: ' . mysql_error());
}
$nomeDB = "Articoli";
mysql_select_db($nomeDB, $con);
$sql="select IDcom, date_format(dataPub,'%d/%m/%Y') as dataPub, Autore, nomeFile, testo, linkA from Articoli Order by IDcom desc";
$esito = mysql_query($sql);
echo "<h2>Istituto Tecnico Industriale \"F. Giordani\"</h2>";
echo "<h1>Articoli pubblicati</h1>";
echo "<h2>Anno scolastico 2011-2012</h2>";
echo "<table>";
echo '<tr><td class="grn">Nr</td><td class="grn">Data</td><td class="grn">Autore</td>';
echo '<td class="grn"> Oggetto</td><td class="grn">Documento</td></tr>';
while ($rSet = mysql_fetch_array($esito)) {
$ID = $rSet['IDcom'];
$dataPubb = $rSet['dataPub'];
$persona = $rSet['Autore'];
$oggetto = $rSet['testo'];
$nomefile = $rSet['nomeFile'];
$linkA = $rSet['linkA'];
echo '<tr><td class="lez">';
echo $ID;
echo '</td><td class="lez">';
echo $dataPubb.'</td><td class="lez">'.$persona.'</td><td class="lez">'.$oggetto;
echo '</td><td class="lez"><a href="'.$nomefile.'">'.$linkA.'</a>';
echo "</td></tr>";
}
echo "</table>";
echo "</body></html>";