Inserimento di nuovi record su file sequenziale con interfaccia web

Prima di procedere con questo esercizio si consiglia di andare a vedere l'esercitazione relativa all'installazione e preparazione dell'ambiente LAMP (click qui).
Se tutto è stato preparato si procede nel modo seguente:
  1. Creazione della cartella del sito
  2. Foglio di stile
  3. Pagine web di base
  4. La pagina di partenza (index.php)
  5. Inserimento nuovi utenti
    1. Il modulo per l'inserimento dei dati (nuovorec.php)
    2. Registrazione con controllo dati (registra.php)
1. Creazione della cartella del sito
Da Risorse - Computer facciamo click sull'icona File System. Da qui scegliamo la cartella var e dentro questa scegliamo la cartella www.
Qui troviamo la cartella html. In questa creiamo la cartella eserciziofile, che sarà il contenitore di partenza del nostro sito.

2. Foglio di stile
Il foglio di stile rappresenta il modo con il modello per tutto le pagine del sito: il font, le sezioni della pagina, etc.
In ogni pagina troverete, all'interno della <head> il tag
<link rel="stylesheet" type="text/css" href="stile.css" />
che richiamerà il foglio di stile.
Da Applicazioni - Programmazione apriamo BlueFish Editor e creiamo il file stile.css che salveremo nella cartella var/www/html/eserciziofile, creata precedentemente (v. punto 1). Il codice da inserire nel file è il seguente:
body
{
	overflow:hidden;
}

th
{
	background-color:#ADD8E6;
	text-align:left;
}

td
{
	border-style: inset;
	border-width:thin;
}
Registrazione con controllo dati (registra.php)
input
{
	background-color:#ADD8E6;
}
#alto
{
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height:10%;
	background-color:#1E90FF;
	padding:2pt;
	
}
#basso
{
	position: absolute;
	top:12%;
	left:0;
	width:100%;
	height:88%;

}
#sx
{
	position: absolute;
	top:1%%;
	left:1%;
	width:25%;
	height:98%;
}
#dx
{
	position: absolute;
	top:1%%;
	left:26%;
	width:74%;
	height:98%;
}

#dati
{
	position: absolute;
	top:1%%;
	left:1%;
	width:98%;
	height:90%;
	overflow:auto;
}

#pulsanti
{
	position: absolute;
	top:90%;
	left:1%;
	width:98%;
	height:8%;
	text-align:center;
}


3. Pagine web di base
In PHP, con l'istruzione
include "file.php";
è possibile includere, in qualsiasi pagina, delle parti che dovrebbero altrimenti essere copiate più volte. Se la parte superiore di ogni pagina (titolo, logo, ...) richiede, ad esempio, 100 istruzioni che dovrebbero essere ricopiate per ogni pagina, si possono salvare in un file (es. testa.php) e richiamarle in ogni pagina scrivendo:
include "testa.php";
Ecco le due pagine di base che saranno richiamate con l'istruzione include:
testa.php
<html>
<head>
<link rel="stylesheet" type="text/css" href="stile.css">
</head>
<body>
<div id="alto">
<b>GESTIONE UTENTI</b><br />
<small>Applicazione ideata da Rocco Camera (kSoft luglio 2009)</small>
</div>
<div id="basso">
<div id="sx">
<ul>
<li><a href="nuovorec.php">Nuovi utenti</a></li>
<li><a href="modifica.php">Modifica utenti inseriti</a></li>
</ul>
</div>
<div id="dx">
<div id="dati">
piede.php
</div>
</div>
</body>
</html>
Copiate il codice delle 2 pagine in Bluefish e salvate sempre nella cartella /var/www/html/eserciziofile.

4. La pagina di partenza (index.php)
La pagina di default, in PHP, va salvata come index.php in modo che venga avviata automaticamente dal server web.
<?php
	include("testa.php");
?>

</div>
<div id="pulsanti">

</div>
<?php
	include("piede.php");
?>
Per testare il funzionamento della pagina aprire il browser Firefox e digitare
http://localhost/html/eserciziofile
poi battere INVIO o fare click sul pulsante di aggiornamento o anche F5 per vedere la pagina in esecuzione

5. Inserimento di nuovi utenti
Per aggiungere un nuovo utente si predispone una pagina come modulo di inserimento dati (nuovorec.php). I dati inseriti, dopo avere premuto il pulsante Registra, saranno controllati dalla pagina registra.php, cha lavora in background.

5a. Il modulo per l'inserimento dei dati (nuovorec.php)
<?php
	include("testa.php");
?>	
<h3>Nuovo Utente:</h3>
<form action="registra.php" method="post">
Cognome:<br />
<input type="text" name="cognome" size="30" maxlength="30" /><br />
Nome:<br />
<input type="text" name="nome" size="30" maxlength="30" /><br />
Telefono:<br />
<input type="text" name="tel" size="20" maxlength="20" /><br />
Cellulare:<br />
<input type="text" name="cell" size="20" maxlength="20" /><br />
E-mail:<br />
<input type="text" name="email" size="30" maxlength="30" /><br />
</div>
<div id="pulsanti">
<input type="submit" value="Registra" />
</div>
<?php
	include("piede.php");
?>
Per testare il funzionamento della pagina aprire il browser Firefox e digitare
http://localhost/html/eserciziofile/nuovorec.php
poi battere INVIO o fare click sul pulsante di aggiornamento o anche F5 per vedere la pagina in esecuzione

Torna al punto 5  Torna all'inizio
5b. Registrazione con controllo dati (registra.php)
La seguente pagina controllerà che almeno il cognome sia inserito. in ogni caso saremo indirizzati, tramite l'ultima istruzione (evidenziata in grassetto), alla pagina listautenti.php che visualizzerà la lista degli utenti inseriti. Tale pagina sarà presa in considerazione in un'esercitazione successiva.
<?php
	$spazi="______________________________";
		
	$cognome=$_POST["cognome"];
	if ($cognome!="")
	{	
		$k=strlen($cognome);
		$cognome.=substr($spazi,0,30-$k);
	
		$nome=$_POST["nome"];
		$k=strlen($nome);
		if ($k>0)
			$nome.=substr($spazi,0,30-$k);
		else
			$nome=$spazi;
	
		$tel=$_POST["tel"];
		$k=strlen($tel);
		if ($k>0)
			$tel.=substr($spazi,0,20-$k);
		else
			$tel=substr($spazi,0,20);
	
		$cell=$_POST["cell"];
		$k=strlen($cell);
		if ($k>0)
			$cell.=substr($spazi,0,20-$k);
		else
			$cell=substr($spazi,0,20);
	
		$email=$_POST["email"];
		$k=strlen($email);
		if ($k>0)
			$email.=substr($spazi,0,30-$k);
		else
			$email=$spazi;

		$w=$cognome.$nome.$tel.$cell.$email;	

		fwrite($fp,$w);
		fclose($fp);
	}
	header("Location:listautenti.php");
?>


Torna al punto 5  Torna all'inizio

Warning: include(../../../piede.php): failed to open stream: No such file or directory in D:\inetpub\webs\roccocamerait\esercitazioni\es4a\php\esfile.php on line 338

Warning: include(): Failed opening '../../../piede.php' for inclusion (include_path='.;C:\php\pear') in D:\inetpub\webs\roccocamerait\esercitazioni\es4a\php\esfile.php on line 338