Luca Bellonilucabelloni.altervista.org/public_html/4e/informatica/php/traccia6/... · Infine...

26
Luca Belloni RELAZIONE ESERCIZIO TRACCIE: TRACCIA N. 6 “ENTE PUBBLICO DI FINANZIAMENTO” Classe 4 E SIA ITE A. Bassi di Lodi Sede: Via di Porta Regale, 2, 26900 Lodi LO

Transcript of Luca Bellonilucabelloni.altervista.org/public_html/4e/informatica/php/traccia6/... · Infine...

Luca Belloni

RELAZIONE ESERCIZIO TRACCIE:

TRACCIA N. 6 “ENTE PUBBLICO DI FINANZIAMENTO”

Classe 4 E SIA

ITE A. Bassi di Lodi

Sede: Via di Porta Regale, 2, 26900 Lodi LO

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

2

Sommario TRACCIA N.6 .............................................................................................................................................. 3

Traccia del problema ........................................................................................................................ 3

Analisi generale ................................................................................................................................... 3

Analisi nel dettaglio .......................................................................................................................... 4

HOME.HTML ........................................................................................................................................ 4

LOCALITA.HTML ............................................................................................................................... 5

SETTING.PHP ..................................................................................................................................... 6

PROGETTI.PHP ................................................................................................................................. 7

FORM_INSERT.PHP ...................................................................................................................... 11

FORM_UPDATE.PHP ..................................................................................................................... 13

LETTURA.PHP .................................................................................................................................. 15

RICERCA.PHP .................................................................................................................................. 17

Area riservata ..................................................................................................................................... 19

LOGIN.PHP/LOGIN_EFFETTUATO.PHP/REG_UTE.PHP/ACTION.PHP/LOGO

UT.PHP ................................................................................................................................................ 19

FINANZIAMENTI.TXT .................................................................................................................. 25

Tabella variabili ................................................................................................................................. 26

Tabella record ..................................................................................................................................... 26

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

3

TRACCIA N.6

Traccia del problema

Un ente pubblico finanzia dei progetti di ricerca, e vuole registrare le informazioni necessarie

per poter sapere, dato il nome di un progetto, il denaro stanziato per tale progetto, inoltre

vuole poter avere l'elenco dei progetti per cui è stata stanziata una somma in denaro inferiore

o superiore ad un valore assegnato.

Scrivere un programma per creare il file (o i file) con i nomi dei progetti ed il denaro

stanziato per ognuno;

Scrivere un programma che dato il nome di un progetto visualizzi il valore dello

stanziamento;

Scrivere un programma che dato un valore di stanziamento scriva l'elenco dei progetti

con uno stanziamento minore o uguale al valore dato;

Scrivere un programma che dato un valore di stanziamento scriva l'elenco dei progetti

con uno stanziamento superiore al valore dato;

Scrivere un programma unico che permetta di scegliere una delle richieste del punto 2

ed avere la risposta corrispondente

Analisi generale

Il sito dovrà contenere 5 pagine: home, località/contatti, lista dei progetti, pagina della ricerca

e una pagina riservata, che accedendoci sbloccherà l’accesso ad una pagina con un menù che

permetterà di andare in altre 3 pagine: la pagina di inserimento dei progetti, la pagina di modifica

e la pagina di visualizzazione dei progetti in archivio (dove potranno essere eliminati

La home dovrà contenere la traccia assegnata;

Nella pagina di località/contatti ci sarà la città dove è situato l’ente, la zona, la via, il

numero di telefono, l’email e una mappa che indica la sua posizione;

All’interno della pagina ricerca i progetti dovranno essere cercati sia per nome che per

l’importo del finanziamento;

Nella lista progetti dovranno apparire tutti i progetti presenti in archivio senza la

possibilità di essere modificati o eliminati, in quanto visibili a tutti;

Infine nell’area riservata si potrà accedere alla stessa o in alternativa, registrarsi tramite

un apposito link;

In sostanza la funzione principale del sito, una volta entrati nella pagina riservata, sarà quella di

inserire un nuovo progetto, salvarlo su un file txt, che svolge la funzione di archivio, modificare

i dati dei progetti presenti ed eliminarli.

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

4

Analisi nel dettaglio

HOME.HTML

Home.html sarà la prima pagina visualizzata dall’utente dove vedrà il nome dell’ente di

finanziamento, un’immagine, un menù di navigazione uguale in tutte le pagine e la traccia

dell’esercizio.

Codice:

<html>

<head>

<meta charset="UTF-8">

<meta name="author" content="Luca Belloni">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="keywords" content="Luca Belloni,4e Lodi,I.T.E Agostino Bassi">

<link rel="stylesheet" href="style.css" type="text/css">

<title>Home | Cash EveryWhere</title>

</head>

<body bgcolor="burlywood">

<center>

<h1>Cash EveryWhere</h1><br>

<h4>"Simulazione scolastica classe IV E Corso SIA - Istituto Tecnico Economico e Tecnologico "Agostino

Bassi" Lodi "</h4>

<img src="lodi.gif" width="150" height="180"><br>

<table border="1" width="100%" bgcolor="white">

<tr align="center" valign="center">

<td width="20%"><font siz1e="4"><b><a href="#">Home</a></b></font></td>

<td width="20%"><font size="4"><b><a href="localita.html">Località e

Contatti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="progetti.php">Progetti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="ricerca.php">Ricerca</a></b></font></td>

<td width="20%"><font size="4"><b><a href="registrazioneutente/login.php">Pagina

riservata</a></b></font></td>

</tr>

</table>

<h2>Traccia assegnata n. 6</h2><a target="blank" href="http://paololatella.blogspot.it/2018/01/tracce-

assegnate-alla-iv-e-sia-file-di.html">(Articolo Blog Latella)</a>

<p>Un ente pubblico finanzia dei progetti di ricerca, e vuole registrare le informazioni necessarie per poter

sapere, dato il nome di un progetto, il denaro stanziato per tale progetto, inoltre vuole poter avere l'elenco dei progetti

per cui è stata stanziata una somma in denaro inferiore o superiore ad un valore assegnato.</p>

<p>Scrivere un programma per creare il file (o i file) con i nomi dei progetti ed il denaro stanziato

per ognuno;</p>

<p>Scrivere un programma che dato il nome di un progetto visualizzi il valore dello

stanziamento;</p>

<p>Scrivere un programma che dato un valore di stanziamento scriva l'elenco dei progetti con uno

stanziamento minore o uguale al valore dato;</p>

<p>Scrivere un programma che dato un valore di stanziamento scriva l'elen-co dei progetti con uno

stanziamento superiore al valore dato;</p>

<p>Scrivere un programma unico che permetta di scegliere una delle richieste del punto 2 ed avere

la risposta corrispondente.</p>

</center>

</body>

</html>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

5

LOCALITA.HTML

In localita.html l’utente vedrà tutte le informazioni riguardanti la località e i contatti dell’ente: la

città dove è situato, la zona, la via, il numero di telefono, l’email e una mappa che indica la sua

posizione.

La parte di codice evidenziato è la stringa che permette la visualizzazione della mappa. Tale

stringa è stata ottenuta da google maps; andando sul sito https://www.google.it/maps/ e

digitando l’indirizzo interessato apparirà un menù, cliccando sulla scritta “condividi” in colore blu

e selezionando l’opzione incorpora mappa (dimensioni medie) appare il codice da inserire nella

pagina html.

Codice:

<html>

<head>

<meta charset="UTF-8">

<meta name="author" content="Luca Belloni">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="keywords" content="Luca Belloni,4e Lodi,I.T.E Agostino Bassi">

<link rel="stylesheet" href="style.css" type="text/css">

<title>Località | Cash EveryWhere</title>

</head>

<body bgcolor="burlywood">

<center>

<h1>Località | Cash EveryWhere</h1><br>

<h4>"Simulazione scolastica classe IV E Corso SIA - Istituto Tecnico Economico e Tecnologico "Agostino

Bassi" Lodi "</h4>

<img src="lodi.gif" width="150" height="180"><br>

<table border="1" width="100%" bgcolor="white">

<tr align="center" valign="center">

<td width="20%"><font siz1e="4"><b><a href="home.html">Home</a></b></font></td>

<td width="20%"><font size="4"><b><a href="#">Località e Contatti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="progetti.php">Progetti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="ricerca.php">Ricerca</a></b></font></td>

<td width="20%"><font size="4"><b><a href="registrazioneutente/login.php">Pagina

riservata</a></b></font></td>

</tr>

</table>

</center>

<p>&nbsp</p>

<p>

<font size="3">Città:</font> <font size="3"><b>Lodi</b></font><br>

<font size="3">Zona:</font><font size="3"> <b>Centro</b></font><br>

<font size="3">Indirizzo:</font><font size="3"><b>Piazza Broletto 1 </b></font><br>

<font size="3">Numero di telefono:</font>:<font size="3"> <b>XXX XXX XXX</b></font><br>

<font size="3">Email:</font>:<font size="3"> <b>[email protected]</b></font><br>

</p>

<iframe

src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d89784.25465206555!2d9.395917379990566!3d

45.313314746690516!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x47812c2bc2475475%3A0xbb724699

bfc100e4!2sComune+di+Lodi+Ufficio+Urp!5e0!3m2!1sit!2sit!4v1516530763521" width="400" height="300"

frameborder="0" style="border:0" allowfullscreen></iframe>

</body>

</html>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

6

SETTING.PHP

Nella pagina setting.php associo a delle variabili i file .txt in modo che nelle pagine successive

mettendo include('setting.php') trasferisco le variabili in tutte le pagine senza dover associare

ogni volta le stesse ai file di testo.

Codice:

<?php

$my_database_2_txt = 'finanziamenti.txt';

?>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

7

PROGETTI.PHP

In questa pagina verranno visualizzati tutti i prodotti presenti sul file finanziamenti.txt grazie al

ciclo di iterazione foreach.

Il ciclo permette di richiamare ogni riga presente nel file finanziamenti.txt, grazie alla variabile

$key ed alla variabile $finanziamenti (che contiene il record), separare tutti i campi, eliminare il

simbolo di separazione | e successivamente visualizzare i dati di ogni libro in tabelle differenti.

Spiegazione delle parti in php nello specifico:

-include('setting.php'), permette di trasferire la variabile $my_database_txt, contenente il file

finanziamenti.txt, contenuta nella pagina setting.php.

-$array =file($my_database_2_txt), associo alla variabile $array la struttura del file di testo.

-foreach($array as $key => $finanziamenti), apro il ciclo di iterazione e creo una variabile ($key) che

mi serve per richiamare l’inizio di ogni riga.

-list( $n_progetto, $proprietario, $data, $importo) = explode("|", $finanziamenti), con list divido

tutti gli elementi contenenti nella variabile $finanziamenti e explode mi toglie il separatore dei campi( | ).

Codice:

<html>

<head>

<meta charset="UTF-8">

<meta name="author" content="Luca Belloni">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="keywords" content="Luca Belloni,4e Lodi,I.T.E Agostino Bassi">

<link rel="stylesheet" href="style.css" type="text/css">

<title>Area Riservata | Cash EveryWhere</title>

</head>

<body bgcolor="burlywood">

<center>

<h1>Area Riservata | Cash EveryWhere</h1><br>

<h4>"Simulazione scolastica classe IV E Corso SIA - Istituto Tecnico Economico e Tecnologico "Agostino

Bassi" Lodi "</h4>

<img src="lodi.gif" width="150" height="180"><br>

<table border="1" width="100%" bgcolor="white">

<tr align="center" valign="center">

<td width="20%"><font siz1e="4"><b><a href="home.html"> Home</a></b></font></td>

<td width="20%"><font size="4"><b><a href="localita.html">Località e

Contatti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="progetti.php">Progetti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="ricerca.php">Ricerca</a></b></font></td>

<td width="20%"><font size="4"><b><a href="registrazioneutente/login.php">Pagina

riservata</a></b></font></td>

</tr>

</table>

</center>

<h2>Lista finanziamenti</h2><hr>

<?php

include('setting.php');

$array= file($my_database_2_txt); //$array_righi conterrà la struttura del file di testo

foreach($array as $key => $finanziamenti){ //associo un nome che mi serve per richiamare l'inizio di ogni riga,

$articolo contiene l'intero record

list( $n_progetto, $proprietario, $data, $importo) = explode("|", $finanziamenti); //con list divido tutti gli

elementi del $articolo, explode metti i dati in tabella eliminando ilsimbolo |

echo '

<p>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

8

<table width="100%>

<tr">

<td width="25%"> <b>Nome Progetto:</b> ' .$n_progetto. ' </td>

<td width="25%"> <b>Proprietario:</b> ' .$proprietario. ' </td>

<td width="25%"> <b>Data concessione finanziamento:</b> ' .$data. ' </td>

<td width="25%"> <b>Importo:</b> ' .$importo. ' </td>

</tr>

</table>

</p>

<hr />';

}

?>

</body>

</html>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

9

ACTION.PHP

La pagina action.php svolge tre funzioni che vanno a modificare prodotti.txt: scrittura dei nuovi

dati inseriti, eliminazione di una riga e la modifica sempre dei dati di una riga. Per includere il

file prodotti.txt usiamo include("setting.php").

ELIMINARE DI UNA RIGA:

All’inizio associa a un array l’intero record (denominato $array_righi), di seguito cancella la riga

selezionata nel file lettura.php e apre il file resettando il contenuto. Attraverso un ciclo di

iterazione riscrive tutte le righe senza quella che precedentemente ha cancellato, chiudiamo il

file e torniamo nella pagina di visualizzazione.

MODIFICA DI UNA RIGA:

Come prima operazione associamo a un array l’intero record (denominato $array_righi),

successivamente creiamo un array $bad_char che mi cancella a video i dati, ma ricorda che sul

disco fisso devono rimanere i simboli di divisione e il comando a capo, di seguito stabilisco

tutte le variabili che conterranno i dati inseriti dall’utente, ma grazie a str_replace prendiamo i

valori reali escludendo gli spazi insignificanti. Poi grazie a row update il programma riscrive la

riga che vogliamo modificare e apre il file resettando il contenuto, ma riscrivendo tutte le righe

con quella modificata. Chiude il file e torna nella pagina di visualizzazione.

Codice:

<?php

include("setting.php");

if(isset($_GET['delete']))

{

// creiamo l'array con tutti i righi

$array = file($my_database_2_txt);

// eliminiamo dall'array il rigo

unset($array[$_GET['delete']]);

// apriamo il file resettando il contenuto

$fp = fopen($my_database_2_txt, "w");

foreach($array as $key => $value){

// ri-scriviamo tutti i righi (rimanenti)

fwrite($fp, $value);

}

fclose($fp);

// ritorniamo nella pagina di visualizzazione

header("location: lettura.php");

exit;

}

/************************

MODIFICARE UN RIGO

*************************/

else if(isset($_POST['modifica']) AND isset($_POST['row_update']))

{

// creiamo l'array con tutti i righi

$array= file($my_database_2_txt);

// riceviamo i dati e li filtriamo

$bad_char = array("|", "\r\n", "\r", "\n");

$n_progetto = str_replace($bad_char, "", $_POST['n_progetto']);

$proprietario= str_replace($bad_char, "", $_POST['proprietario']);

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

10

$data = str_replace($bad_char, "", $_POST['data']);

$importo= str_replace($bad_char, "", $_POST['importo']);

// ri-scriviamo il rigo (che sostituirà il precedente)

$array[$_POST['row_update']] = $n_progetto."|".$proprietario."|".$data."|".$importo."\r\n";

// apriamo il file resettando il contenuto

$fp= fopen($my_database_2_txt, "w");

foreach($array as $key => $value){

// ri-scriviamo tutti i righi

fwrite($fp, $value);

}

fclose($fp);

// ritorniamo nella pagina di visualizzazione

header("location: lettura.php");

exit;

}

?>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

11

FORM_INSERT.PHP

All’interno ci sarà un form che permetterà all’utente di inserire i dati dei progetti, grazie al codice

in php all’interno della pagina.

SCRITTURA DI UNA RIGA:

Per prima cosa controlla se il file ha i permessi di scrittura e successivamente riceve i dati, da

page.php, e li filtra: all’inizio crea un array ($bad_char )che cancella a video i dati, ma ricorda

che sul disco fisso devono rimanere i simboli di divisione e il comando a capo, di seguito stabile

tutte le variabili che conterranno i dati inseriti dall’utente, ma grazie a str_replace prendiamo i

valori reali escludendo gli spazi insignificanti. A seguire apre il file usando l’attributo a+, che

apre il file iniziando a scrivere dall’ultimo riga presente sul file txt. Poi scrive i dati separati dal

carattere | (detto carattere separatore), chiude il file e infine torna nella pagina di

visualizzazione.

Codice:

<html>

<head>

<meta charset="UTF-8">

<meta name="author" content="Luca Belloni">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="keywords" content="Luca Belloni,4e Lodi,I.T.E Agostino Bassi">

<link rel="stylesheet" href="style.css" type="text/css">

<title>Area Riservata | Cash EveryWhere</title>

</head>

<body bgcolor="burlywood">

<center>

<h1>Area Riservata | Cash EveryWhere</h1><br>

<h4>"Simulazione scolastica classe IV E Corso SIA - Istituto Tecnico Economico e Tecnologico "Agostino

Bassi" Lodi "</h4>

<img src="lodi.gif" width="150" height="180"><br>

<table border="1" width="100%" bgcolor="white">

<tr align="center" valign="center">

<td width="20%"><font siz1e="4"><b><a href="home.html"> Home</a></b></font></td>

<td width="20%"><font size="4"><b><a href="localita.html">Località e

Contatti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="progetti.php">Progetti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="ricerca.php">Ricerca</a></b></font></td>

<td width="20%"><font size="4"><b><a href="#">Pagina riservata</a></b></font></td>

</tr>

</table>

<table border="1" width="10%" bgcolor="white" >

<tr align="center" valign="center"><td width="20%"><font size="4"><b><a

href="registrazioneutente/logout.php">Logout</a></b></font></td></tr>

</table>

</center>

<h3><a href="lettura.php">Torna alla lista dei finanziamenti</a></h3>

<h3><a href="lettura.php">Per modificare o cancellare un finanziamento clicca qui</a></h3>

<form action="form_insert.php" method="post">

<label for="n_progetto">Nome progetto</label>

<input type="text" id="n_progetto" name="n_progetto" />

<label for="proprietario">Proprietario</label>

<input type="text" id="proprietario" name="proprietario" />

<label for="data">Data dell'erogazione del finanziamento</label>

<input type="date" id="data" name="data" />

<label for="importo">Importo</label>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

12

<input type="text" id="importo" name="importo" />

<input type="submit" name="scrivi" value="Inserisci" />

</form>

<?php

include("setting.php");

if(isset($_POST['scrivi']))

{

if(!is_writable($my_database_2_txt)){

exit("il file non ha i permessi di scrittura!");

}

// riceviamo i dati e li filtriamo

$bad_char = array("|", "\r\n", "\r", "\n");

$n_progetto = str_replace($bad_char, "", $_POST['n_progetto']);

$proprietario= str_replace($bad_char, "", $_POST['proprietario']);

$data = str_replace($bad_char, "", $_POST['data']);

$importo= str_replace($bad_char, "", $_POST['importo']);

// apriamo il file

$fp = fopen($my_database_2_txt,"a+");

flock($fp,2); /*funzione che blocca il file in maniere che si possa scrivere senza accavallare i dati se 2 o più

persone stanno usando il programma*/

// scriviamo i dati separati dal carattere separatore

fwrite($fp, $n_progetto."|".$proprietario."|".$data."|".$importo."\r\n");

flock($fp,3);//sblocca permettendo a prossimi dati di essere iscritti nel file di testo

fclose($fp);//chiusura del file di testo

// ritorniamo nella pagina di visualizzazione

header("location: lettura.php");

exit;

}

?>

</body>

</html>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

13

FORM_UPDATE.PHP

All’interno ci sarà un form che permetterà all’utente di modificare i dati contenuti in prodotti.txt

grazie al collegamento con action.php, che contiene il codice di modifica.

Il codice in php mi va a prendere gli elementi in memoria e successivamente mi divide tutti i

campi eliminando il simbolo separatore.

Nei campi del form verranno riportati i valori relativi alla riga che vogliamo modificare per mezzo

di questo comando: <?php echo htmlentities($categoria, ENT_QUOTES); ?>.Esso mi va a

prendere il valore reale all’interno della variabile.

Codice:

<html>

<head>

<meta charset="UTF-8">

<meta name="author" content="Luca Belloni">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="keywords" content="Luca Belloni,4e Lodi,I.T.E Agostino Bassi">

<link rel="stylesheet" href="style.css" type="text/css">

<title>Area Riservata | Cash EveryWhere</title>

</head>

<body bgcolor="burlywood">

<center>

<h1>Area Riservata | Cash EveryWhere</h1><br>

<h4>"Simulazione scolastica classe IV E Corso SIA - Istituto Tecnico Economico e Tecnologico "Agostino

Bassi" Lodi "</h4>

<img src="lodi.gif" width="150" height="180"><br>

<table border="1" width="100%" bgcolor="white">

<tr align="center" valign="center">

<td width="20%"><font siz1e="4"><b><a href="home.html"> Home</a></b></font></td>

<td width="20%"><font size="4"><b><a href="localita.html">Località e

Contatti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="progetti.php">Progetti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="ricerca.php">Ricerca</a></b></font></td>

<td width="20%"><font size="4"><b><a href="#">Pagina riservata</a></b></font></td>

</tr>

</table>

<table border="1" width="10%" bgcolor="white" >

<tr align="center" valign="center"><td width="20%"><font size="4"><b><a

href="registrazioneutente/logout.php">Logout</a></b></font></td></tr>

</table>

</center>

<h3><a href="lettura.php">Torna alla lista dei finanziamenti</a></h3>

<h3><a href="lettura.php">Per modificare o cancellare un finanziamento clicca qui</a></h3>

<form action="action.php" method="post">

<label for="n_progetto">Nome progetto</label>

<input type="text" id="n_progetto" name="n_progetto" value="<?php echo htmlentities($n_progetto,

ENT_QUOTES); ?>"/>

<label for="proprietario">Proprietario</label>

<input type="text" id="proprietario" name="proprietario" value="<?php echo htmlentities($proprietario,

ENT_QUOTES); ?>"/>

<label for="data">Data dell'erogazione del finanziamento</label>

<input type="text" id="data" name="data" value="<?php echo htmlentities($data, ENT_QUOTES); ?>"/>

<label for="importo">Importo</label>

<input type="text" id="importo" name="importo" value="<?php echo htmlentities($importo,

ENT_QUOTES); ?>"/>

<input type="hidden" name="row_update" value="<?php echo $_GET['row']; ?>" />

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

14

<input type="submit" name="modifica" value="modifica" />

</form>

</body>

</html>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

15

LETTURA.PHP

Lettura.php svolge la stessa funzione di progetti.php, ma con due grandi differenze:

L’utente potrà entrare nella pagina solo se avrà fatto il login nell’area

riservata(login.php).

In progetti.php si può vedere solo i dati contenuti in finanziamenti.txt mentre qua

troviamo due link:

1. Elimina, che è collegato alla funzione di eliminazione in action.php e di

conseguenza puoi eliminare una riga nel file txt;

2. Modfica, che è collegato alla funzione di modifica in action.php e di conseguenza

puoi modificare una riga nel file txt.

Codice:

<html>

<head>

<meta charset="UTF-8">

<meta name="author" content="Luca Belloni">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="keywords" content="Luca Belloni,4e Lodi,I.T.E Agostino Bassi">

<link rel="stylesheet" href="style.css" type="text/css">

<title>Area Riservata | Cash EveryWhere</title>

</head>

<body bgcolor="burlywood">

<center>

<h1>Area Riservata | Cash EveryWhere</h1><br>

<h4>"Simulazione scolastica classe IV E Corso SIA - Istituto Tecnico Economico e Tecnologico "Agostino

Bassi" Lodi "</h4>

<img src="lodi.gif" width="150" height="180"><br>

<table border="1" width="100%" bgcolor="white">

<tr align="center" valign="center">

<td width="20%"><font siz1e="4"><b><a href="home.html"> Home</a></b></font></td>

<td width="20%"><font size="4"><b><a href="localita.html">Località e

Contatti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="progetti.php">Progetti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="ricerca.php">Ricerca</a></b></font></td>

<td width="20%"><font size="4"><b><a href="#">Pagina riservata</a></b></font></td>

</tr>

</table>

<table border="1" width="10%" bgcolor="white" >

<tr align="center" valign="center"><td width="20%"><font size="4"><b><a

href="registrazioneutente/logout.php">Logout</a></b></font></td></tr>

</table>

</center>

<h1>Lista finanziamenti</h1>

<h2><a href="form_insert.php">Inserisci un nuovo finanziamento</a></h2>

<?php

include('setting.php');

$array= file($my_database_2_txt); //$array_righi conterrà la struttura del file di testo

foreach($array as $key => $finanziamenti){ //associo un nome che mi serve per richiamare l'inizio di ogni riga,

$articolo contiene l'intero record

list( $n_progetto, $proprietario, $data, $importo) = explode("|", $finanziamenti); //con list divido tutti gli

elementi del $articolo, explode metti i dati in tabella eliminando ilsimbolo |

echo '

<p>

<table width="100%>

<tr">

<td width="25%"> <b>Nome Progetto:</b> ' .$n_progetto. ' </td>

<td width="25%"> <b>Proprietario:</b> ' .$proprietario. ' </td>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

16

<td width="25%"> <b>Data concessione finanziamento:</b> ' .$data. ' </td>

<td width="25%"> <b>Importo:</b> ' .$importo. ' </td>

</tr>

</table>

<a href="action.php?delete=' .$key. '">Elimina</a> - <a href="form_update.php?row=' .$key.

'">Modifica</a>

</p>

<hr />';

}

?>

</body>

</html>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

17

RICERCA.PHP

In ricerca.php si trova un form, dove l’utente scrivendo il nome del progetto o l’importo

e selezionando l’apposito bottino con il metodo di ricerca per nome o per importo, fa

partire un ciclo che cerca all’interno del file finanziamenti.txt il valore digitato e se lo

troerà verrà stampata la riga in cui si trovano tutti i dati riferiti al valore altrimenti non

stamperà nulla.

Infine inserendo all’interno del ciclo $count mi permette di visualizzare il totale dei

risultati trovati, se li ha trovati, altrimenti apparirà la scritta “0 risultati trovati”.

Codice:

<html>

<head>

<meta charset="UTF-8">

<meta name="author" content="Luca Belloni">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="keywords" content="Luca Belloni,4e Lodi,I.T.E Agostino Bassi">

<link rel="stylesheet" href="style.css" type="text/css">

<title>Ricerca | Cash EveryWhere</title>

</head>

<body bgcolor="burlywood">

<center>

<h1>Ricerca | Cash EveryWhere</h1><br>

<h4>"Simulazione scolastica classe IV E Corso SIA - Istituto Tecnico Economico e Tecnologico "Agostino

Bassi" Lodi "</h4>

<img src="lodi.gif" width="150" height="180"><br>

<table border="1" width="100%" bgcolor="white">

<tr align="center" valign="center">

<td width="20%"><font siz1e="4"><b><a href="home.html">Home</a></b></font></td>

<td width="20%"><font size="4"><b><a href="localita.html">Località e

Contatti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="progetti.php">Progetti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="#">Ricerca</a></b></font></td>

<td width="20%"><font size="4"><b><a href="registrazioneutente/login.php">Pagina

riservata</a></b></font></td>

</tr>

</table>

</center>

<center>

<form action="ricerca.php" method="post">

<input name="search">

<input type="radio" name="button" value="nome_prog" checked >Ricerca per nome progetto<br>

<input type="radio" name="button" value="importo"> Ricerca per importo stanziato<br>

<input type="submit" name="ricerca" value="Ricerca">

</form>

</center>

<?php

include('setting.php');

$array = file($my_database_2_txt);

$search=$_POST['search'];

$button=$_POST['button'];

$count=0;

if($button == "nome_prog") {

foreach($array as $key => $finanziamenti){ //associo un nome che mi serve per richiamare l'inizio di

ogni riga, $articolo contiene l'intero record

list( $n_progetto, $proprietario, $data, $importo) = explode("|", $finanziamenti); //con list divido tutti gli

elementi del $articolo, explode metti i dati in tabella eliminando ilsimbolo |

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

18

if($search == $n_progetto) {

$count += 1;

echo '

<p>

<table width="100%">

<tr>

<td width="25%"> <b>Nome Progetto:</b> ' .$n_progetto. ' </td>

<td width="25%"> <b>Proprietario:</b> ' .$proprietario. ' </td>

<td width="25%"> <b>Data concessione finanziamento:</b> ' .$data. ' </td>

<td width="25%"> <b>Importo:</b> ' .$importo. ' </td>

</tr>

</table>

</p>

<hr />';

}

}

echo "<p style='padding: 5px;'>Risultati trovati: ".$count."</p>";

}

else if($button == "importo"){

foreach($array as $key => $finanziamenti){ //associo un nome che mi serve per richiamare

l'inizio di ogni riga, $articolo contiene l'intero record

list( $n_progetto, $proprietario, $data, $importo) = explode("|", $finanziamenti); //con list divido tutti

gli elementi del $articolo, explode metti i dati in tabella eliminando ilsimbolo |

if(floatval($importo) <= floatval($search)) {

$count += 1;

echo '

<p>

<table width="100%">

<tr>

<td width="25%"> <b>Nome Progetto:</b> ' .$n_progetto. ' </td>

<td width="25%"> <b>Proprietario:</b> ' .$proprietario. ' </td>

<td width="25%"> <b>Data concessione finanziamento:</b> ' .$data. ' </td>

<td width="25%"> <b>Importo:</b> ' .$importo. ' </td>

</tr>

</table>

</p>

<hr />';

}

}

echo "<p style='padding: 5px;'>Risultati trovati: ".$count."</p>";

}

?>

</body>

</html>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

19

Area riservata

LOGIN.PHP/LOGIN_EFFETTUATO.PHP/REG_UTE.PHP/ACTION.PHP/LOGOUT.

PHP

Si utilizzano solo pagine php. Il modulo form viene gestito all'interno di una pagina php.

Ricordo che le pagine php e i relativi file txt creati devono essere memorizzati all'interno di una

cartella dentro un server Web. I file di testo devono avere i permessi di lettura e scrittura.

Altrimenti al primo tentativo di accesso al file di testo apparirà a video il messaggio che non si

ha il permesso di scrittura.

Procediamo adesso ad analizzare l'intera procedura:

La prima cosa da fare è registrarsi compilando la pagina reg_ute.php.

Questa operazione permette di passare i dati inseriti direttamente nella stessa pagina

all'interno delle variabili create appositamente. Queste variabili vengono poi passate alla

pagina action.php che registrerà per ogni riga del file di testo l'intero record e tra un campo e

l'altro verrà memorizzato un carattere ASCII che servirà a distanziare il contenuto di ogni

singolo campo. Alla fine verranno memorizzati due caratteri ASCII che permetteranno al Php di

terminare il record e posizionare il puntatore all'inizio della fine riga.

Successivamente si potrà accedere all'area riservata inserendo le credenziali corrette tramite la

pagina di login acc_utente.php.

In questa pagina ci sono alcune cose importanti da ricordare:

Si verifica se i dati non sono stati inseriti.

Si apre il file in lettura (r).

Si crea l'array dei clienti registrati.

si definisce la variabile con il numero dei clienti registrati (servirà per il ciclo con il num

max)

flock($fp,2); è la funzione (LUCCHETTO) che rende sicura la registrazione in maniera

che nessuno possa intervenire in quel dato momento.

la variabile $trovato viene azzerata associata con false; //variabile che viene portata a

1 (vero - true) nel caso in cui sia user che password siano corretti e l'utente può

accedere all'area riservata.

Si apre il ciclo di lettura per cercare nell'array in memoria i due campi da confrontare

con le variabili inserite.

confronto formale tra i dati inseriti dall'utente con quelli memorizzati in fase di

registrazione.

$trovato=($check_user && $check_pass) corrisponde a true.

flock($fp,3); ritorna disponibile un'altra registrazione nel file di testo

adesso si può chiudere il file di testo

Si riapre il file di testo (clienti.txt) in lettura.

si associa a $gen (nome del file logico generalità dei clienti al file fisico clienti.txt

$i--; la variabile $i viene decrementata per permettere di prelevare i dati da un altro file

di testo senza l'utilizzo di un'altra variabile.

fclose($fp); La funzione explode in PHP ha il compito di suddividere una stringa sulla

base di un dato separatore.

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

20

Si chiude i file di testo.

Con la pagina login_effetuato.php si verifica se l'accesso è stato effettuato con successo.

Con la pagina logout.php si disconnette dalla sessione attiva.

Codice login.php:

<html>

<head>

<meta charset="UTF-8">

<meta name="author" content="Luca Belloni">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="keywords" content="Luca Belloni,4e Lodi,I.T.E Agostino Bassi">

<link rel="stylesheet" href="../style.css" type="text/css">

<title>Area Riservata | Cash EveryWhere</title>

</head>

<body bgcolor="burlywood">

<center>

<h1>Area Riservata | Cash EveryWhere</h1><br>

<h4>"Simulazione scolastica classe IV E Corso SIA - Istituto Tecnico Economico e Tecnologico "Agostino

Bassi" Lodi "</h4>

<img src="../lodi.gif" width="150" height="180"><br>

<table border="1" width="100%" bgcolor="white">

<tr align="center" valign="center">

<td width="20%"><font siz1e="4"><b><a href="../home.html">Home</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../localita.html">Località e

Contatti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../progetti.php">Progetti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../ricerca.php">Ricerca</a></b></font></td>

<td width="20%"><font size="4"><b><a href="#">Pagina riservata</a></b></font></td>

</tr>

</table>

<h2> Accesso Utente </h2>

<form action="login.php" method="POST">

Username: <input name="user" maxlength="15" size="15" type="text" placeholder="Username=user1">

Password: <input name="pass" maxlength="15" size="15" type="password"

placeholder="Password=password1">

<input value="Accedi" type="submit" name="invia">

<input value="Cancella" type="reset">

</form>

<?php

session_start();

$user=$_POST['user'];

$pass=$_POST['pass'];

$fp=fopen("password.txt","r");//apertura file di testo user pass clienti

$dati=file("password.txt");//array dei clienti registrati

$num_cli=count($dati);//numero dei clienti registrati

flock($fp,2);//funzione che blocca il file in sicurezza in maniera che si possa scrivere senza che nessun altro

possa registrare i dati.

$trovato=false; //variabile che viene portata a 1 (vero - true) nel caso in cui sia user che password siano

corretti e l'utente può accedere

for($i=0; !$trovato && $i<$num_cli; $i++){

$stringa_div=explode("|",$dati[$i]);

$check_user=($stringa_div[0]==$user);

$check_pass=(trim($stringa_div[1])==trim($pass));

$trovato=($check_user && $check_pass);

}

flock($fp,3);//sblocca permettendo una successiva registrazione nel file di testo

fclose($fp);//chiusura del file di testo

$fp=fopen("password.txt","r");//apertura del file di testo delle generalità dei clienti

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

21

$gen=file("password.txt");

$i--;//$i aveva concluso l'ultimo ciclo con l'indice maggiore di uno, viene quindi riportato indietro per

permettere di prelevare i dati da un altro file di testo senza l'utilizzo di un'altra variabile

$stringa=explode("|",$gen[$i]);

fclose($fp);

if($trovato==true)

header("Location: login_effettuato.php");

else echo"L'username o la password inserite non sono corrette, riprova o registrati <a

href='reg_ute.php'>qui</a>.";

?>

</center>

</body>

</html>

Codice logout.php:

<html>

<head>

<meta charset="UTF-8">

<meta name="author" content="Luca Belloni">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="keywords" content="Luca Belloni,4e Lodi,I.T.E Agostino Bassi">

<link rel="stylesheet" href="../style.css" type="text/css">

<title>Area Riservata | Cash EveryWhere</title>

</head>

<body bgcolor="burlywood">

<center>

<h1>Area Riservata | Cash EveryWhere</h1><br>

<h4>"Simulazione scolastica classe IV E Corso SIA - Istituto Tecnico Economico e Tecnologico "Agostino

Bassi" Lodi "</h4>

<img src="../lodi.gif" width="150" height="180"><br>

<table border="1" width="100%" bgcolor="white">

<tr align="center" valign="center">

<td width="20%"><font siz1e="4"><b><a href="../home.html">Home</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../localita.html">Località e

Contatti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../progetti.php">Progetti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../ricerca.php">Ricerca</a></b></font></td>

<td width="20%"><font size="4"><b><a href="login.php">Pagina

riservata</a></b></font></td>

</tr>

</table>

<?php

include 'conf.php';

session_start();

if ($_SESSION['username']==$uname1) {

session_unset();

session_destroy();

echo "<center><p>HAI EFFETTUATO IL LOGOUT</p></center>";

} ?>

</center>

</body>

</html>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

22

Codice action.php:

<?php

include("setting.php");

/*************************

SCRITTURA

**************************/

if(isset($_POST['registrati']))

{

if(!is_writable($my_database_txt)){

exit("il file non ha i permessi di scrittura!");

}

// riceviamo i dati e li filtriamo

$bad_char = array("|", "\r\n", "\r", "\n");

$user = str_replace($bad_char, "", $_POST['user']);

$pass = str_replace($bad_char, "", $_POST['pass']);

// apriamo il file

$open = fopen($my_database_txt, "a+");

// scriviamo i dati separati dal carattere separatore

fwrite($open,$user."|". $pass. "\r\n");

// chiudiamo il file

fclose($open);

// ritorniamo nella pagina di visualizzazione

header("location: login.php");

exit;

}

?>

Codice login_effettuato.php:

<html>

<head>

<meta charset="UTF-8">

<meta name="author" content="Luca Belloni">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="keywords" content="Luca Belloni,4e Lodi,I.T.E Agostino Bassi">

<link rel="stylesheet" href="../style.css" type="text/css">

<title>Area Riservata | Cash EveryWhere</title>

</head>

<body bgcolor="burlywood">

<center>

<h1>Area Riservata | Cash EveryWhere</h1><br>

<h4>"Simulazione scolastica classe IV E Corso SIA - Istituto Tecnico Economico e Tecnologico "Agostino

Bassi" Lodi "</h4>

<img src="../lodi.gif" width="150" height="180"><br>

<table border="1" width="100%" bgcolor="white">

<tr align="center" valign="center">

<td width="20%"><font siz1e="4"><b><a href="../home.html"> Home</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../localita.html">Località e

Contatti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../progetti.php">Progetti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../ricerca.php">Ricerca</a></b></font></td>

<td width="20%"><font size="4"><b><a href="#">Pagina riservata</a></b></font></td>

</tr>

</table>

<table border="1" width="10%" bgcolor="white" >

<tr align="center" valign="center"><td width="20%"><font size="4"><b><a

href="logout.php">Logout</a></b></font></td></tr>

</table>

<p>&nbsp</p>

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

23

<a href="../form_insert.php">Inserimento nuovo finanziamento</a><br /><br />

<a href="../lettura.php">Visualizza tutti i finanziamenti</a><br /><br />

<a href="../lettura.php">Modifica/cancella finanziamenti</a><br /><br />

</center>

</body>

</html>

Codice reg_ute.php:

<html>

<head>

<meta charset="UTF-8">

<meta name="author" content="Luca Belloni">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta name="keywords" content="Luca Belloni,4e Lodi,I.T.E Agostino Bassi">

<link rel="stylesheet" href="../style.css" type="text/css">

<title>Registrazione Utente | Cash EveryWhere</title>

</head>

<body bgcolor="burlywood">

<center>

<h1>Registrazione Utente | Cash EveryWhere</h1><br>

<h4>"Simulazione scolastica classe IV E Corso SIA - Istituto Tecnico Economico e Tecnologico "Agostino

Bassi" Lodi "</h4>

<img src="../lodi.gif" width="150" height="180"><br>

<table border="1" width="100%" bgcolor="white">

<tr align="center" valign="center">

<td width="20%"><font siz1e="4"><b><a href="../home.html"> Home</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../localita.html">Località e

Contatti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../progetti.php">Progetti</a></b></font></td>

<td width="20%"><font size="4"><b><a href="../ricerca.php">Ricerca</a></b></font></td>

<td width="20%"><font size="4"><b><a href="#">Pagina riservata</a></b></font></td>

</tr>

</table>

<table border="1" width="10%" bgcolor="white" >

<tr align="center" valign="center"><td width="20%"><font size="4"><b><a href="login.php">Torna

all'area riservata</a></b></font></td></tr>

</table>

</center>

<form method="POST" action="reg_ute.php">

Nome: <input type="text" name="nome"><br>

Cognome: <input type="text" name="cognome"><br>

Data di nascità:<input type="date" name="dnascita"><br>

Codice Fiscale: <input type="text" name="codfiscale"><br>

E-mail: <input type="text" name="email"><br>

Indirizzo: <input type="text" name="indirizzo"><br>

Paese: <input type="text" name="paese"><br>

Cellulare: <input type="text" name="cellulare"><br>

Nome utente: <input type="text" name="user"><br>

Password: <input type="password" name="pass"><br>

Ripeti la Password: <input type="password" name="rip_pass"><br>

<input type="submit" name="registrati" value="registrati">

</form>

<?php

if(isset($_POST['registrati'])){

echo"<br><br><br>";

$nome=$_POST['nome'];

$cognome=$_POST['cognome'];

$dnascita=$_POST['dnascita'];

$codfiscale=$_POST['codfiscale'];

$email=$_POST['email'];

$indirizzo=$_POST['indirizzo'];

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

24

$paese=$_POST['paese'];

$cellulare=$_POST['cellulare'];

$user=$_POST['user'];

$pass=$_POST['pass'];

$rip_pass=$_POST['rip_pass'];

//riempimento variabili con dati form

if($nome&&$cognome&&$dnascita&&$codfiscale&&$email&&$indirizzo&&$paese&&$cellulare&&$user&&$pass&&$rip_p

ass)

{

if($pass==$rip_pass) {

//La funzione strlen restituisce la lunghezza (numero di caratteri) di una stringa.

if(strlen($pass)<6){

echo"La password deve contenere almeno 8 caratteri";

} else{

//unione delle variabili paese ed indirizzo in un'unica stringa

//la funzione ucwords restituisce un testo in cui la lettera iniziale di ogni parola è convertita in maiuscolo, se il

carattere è alfabetico.

$indirizzo=ucwords("$paese, $indirizzo");

//La funzione restituisce la stringa $string con tutti i caratteri alfabetici convertiti in minuscolo.

$pass=strtolower($pass);

//la funzione ucwords defiisce "parola": sequenza di caratteri immediatamente seguita da un //carattere di

delimitazione (i delimitatori sono: spazio, form-feed, newline, carriage return, tab //orizzontale e tab verticale).

concatenazione stringhe

$nome=ucwords("$nome $cognome");

//nome del file di testo

$nomefile="password.txt";

$nomefile2="password2.txt";

//apertura file di testo clienti

$fp=fopen($nomefile,"r");

$dati=file($nomefile);

//variabile che indica se un user name è già presente nel nostro archivio

$trovato=0;

for($i=0;$i<count($dati) && $trovato==0;$i++){

$stringa_div=explode("|",$dati[$i]);

if($stringa_div[0]==$user || $stringa_div[2]==$mail)

$trovato=1;

}

fclose($fp);//chiusura del file di testo

if($trovato==0){

$fp=fopen($nomefile,"a");//aperture del file di testo dei dati personali del cliente

$dati_pers=array($user,$pass,$email,$nome,$indirizzo);//array dei dati personali

$stringa=implode("|",$dati_pers);/*funzione che ci permette di passare dall'array ad una stringa separando i vari

campi con un carattere da noi deciso*/

flock($fp,2);/*funzione che blocca il file in maniere che si possa scrivere senza accavallare i dati se 2 o più persone

stanno usando il programma*/

$nl=chr(13).chr(10);//manda a capo alla fine della stringa nel file di testo

fwrite($fp,"$stringa$nl");//scrive nel file di testo

flock($fp,3);//sblocca permettendo a prossimi dati di essere iscritti nel file di testo

fclose($fp);//chiusura del file di testo

$fp=fopen($nomefile2,"a");//aperture del file di testo dei dati personali del cliente

$dati_pers=array($user,$pass);//array dei dati personali

$stringa=implode("|",$dati_pers);/*funzione che ci permette di passare dall'array ad una stringa separando i vari

campi con un carattere da noi deciso*/

flock($fp,2);/*funzione che blocca il file in maniere che si possa scrivere senza accavallare i dati se 2 o più persone

stanno usando il programma*/

$nl=chr(13).chr(10);//manda a capo alla fine della stringa nel file di testo

fwrite($fp,"$stringa$nl");//scrive nel file di testo

flock($fp,3);//sblocca permettendo a prossimi dati di essere iscritti nel file di testo

fclose($fp);//chiusura del file di testo

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

25

echo "<script> alert('I tuoi dati sono stati registrati correttamente! Ora puoi accedere ai nostri servizi tramite user e

password tornando all'area riservata ') </script>";

}else

echo"<script> alert('L'username o l'email che hai utilizzato è già presente nel nostro registro dati') </script>";

}

}else

echo"<script> alert('Le password non coincidono') </script>";

} else

echo"<script> alert('Tutti i campi sono obbligatori') </script>";

}

?>

</body>

</html>

Codice setting.php:

<?php

$my_database_txt = 'password.txt';

?>

Codice password.txt:

cccccc1|qwertyuiop1|[email protected]|Pkèèpèpk èkèpkè0pk|Pnin, Nioioinp

FINANZIAMENTI.TXT

FINANZIAMENTI.txt è il file dove vengono salvati tutti i dati inseriti dall’utente.

Codice:

Progetto1|Signore 1|1999-02-22|100000

Progetto 2|Signore 2|2000-05-30|79865

Progetto 3|Signore 3|2001-05-25|20020

©Relazione traccie assegnate: traccia n.6 di Luca Belloni-Istituto Agostino Bassi Lodi-4E

26

Tabella variabili

Nome Tipo Grandezza Descrizione

$n_progetto Stringa Minimo 1 Indica il nome del

progetto

$proprietario Stringa Minimo 1 Indica il proprietario del

progetto

$importo Numeri Minimo 1 Indica l’importo del

finanziamento

$data Stringa 10 Indica la data in cui è

stato concesso il

finanziamento

$my_database_2_txt Stringa È la variabile associata

al file txt

$array Array Comprende tutti i

campi del file txt

$search Stringa Minimo 1 Racchiude il dato

inserito dall’utente per

ricercare il progetto

$user Stringa Minimo 1 Indica l’username

inserito dall’utente

$password Stringa Minimo 6 Indica la password

inserita dall’utente

Tabella record

Record Attributi Grandezza

$finanziamenti $n_progetto, $proprietario, $data,

$importo

Minimo 13

$dati_pers $user,$pass,$email,$nome,$indirizzo 17