-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
executable file
·181 lines (169 loc) · 9.3 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="utf-8">
<link rel="stylesheet" href="css/reset.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<link rel="stylesheet" href="css/grid.css" type="text/css" media="screen">
<script src="js/jquery-1.6.3.min.js" type="text/javascript"></script>
<script src="js/cufon-yui.js" type="text/javascript"></script>
<script src="js/cufon-replace.js" type="text/javascript"></script>
<script src="js/Mate_400.font.js" type="text/javascript"></script>
<script src="js/FF-cash.js" type="text/javascript"></script>
<script src="js/tms-0.3.js" type="text/javascript"></script>
<script src="js/tms_presets.js" type="text/javascript"></script>
<script src="js/jquery.easing.1.3.js" type="text/javascript"></script>
</head>
<body id="page1">
<div class="extra">
<div class="main">
<!--==============================header=================================-->
<header>
<div class="wrapper p4">
<h1><a href="index.html">Paste & Go</a></h1>
<ul class="list-services">
<li><a href="#">Site Map</a></li>
<li><a href="#">Help</a></li>
<li><a href="#">FAQs</a></li>
</ul>
</div>
<nav>
<ul class="menu">
<li class="active"><a href="index.html">Home</a></li>
<li><a href="CaricoF.html">Upload</a></li>
<li><a href="downloads.html">Downloads</a></li>
<li><a href="controllo.html">Controllo</a></li>
<li class="last"><a href="contacts.html">Contacts</a></li>
</ul>
</nav>
<div id="Pannello" style="margin-bottom:300px">
<CENTER>
<a href="images/DIAGRAMMA.png"><h2>DIAGRAMMA E-R</h2></a>
<ul style="color: white; font-size: 150%">
<br><br>
<li><h2>Descrizione Progetto</h2><br><br></li>
<li>Il progetto Paste&Go si basa sul concetto di trasferire un file,ad amici o tra un computer personale ad un altro, in maniera semplice e veloce.<br>
Il sistema, dopo che l'utente ha selezionato il file da trasferire, dara' un codice univoco nel database. Questo codice sara' valido per un tempo massimo di 10 minuti dall'upload, passati questi 10 minuti il sistema cancellera' il file dal database e il relativo codice di riferimento.<br> Nel sito è stato implementato una sezione in cui l'admin può controllare, senza scrivere sql o controllare il database da altri programmi, l'utilizzo del sito, cioè: file caricari, elenco download e 2 grafici che indicano l'andamento giornaliero del sito.<br><br> </li>
<li><h2>Implementazione</h2><br><br></li>
<li>Per implementare il sistema sono stati utilizzati i seguenti linguaggi: HTML, JAVASCRIPT, PHP, Chart.js(Framework javascript).<br>
Come programmi ho utilizzato phpmyadmin per creare il database e le tabelle ed il programma apache per simulare il server.</li>
<li>Html è stato utilizzato per creare la struttura della pagine web dove poi saranno inseririti tutti i form,dati ecc.<br>
Javascript è stato utilizzato sia per inserire in maniera veloce il codice univoco nel form e per implementare i grafici con Chart.js.<br>
Con il Php è stato svolto tutto il processo di connesione tra la pagina web e il database. <br> Di seguito descriviamo il contenuto delle singole pagine .php.
Per la progettazione del database ho voluto usare una strategia top-down.<br><br>
</li>
<li><h2>Upload.php:</h2><br>
In questa pagina troviamo, come in ogni pagina, la connessione col database. <br>Successivamente troviamo il controllo del codice, infatti può capitare che il codice dato dal sito può essere presente nel database, anche se con probabilita' molto bassa (1 su 1000), in caso di codice già presente nel database, il codice viene sostituito e il cambiamento viene segnalato all'utente.<br>
Viene poi acquisito l'ip dell'utente che verrà poi salvato nel database, e viene controllato se il file è stato correttamente caricato nel form della pagina "CaricoF.html", se è tutto ok il php carica il file nella cartella "DirUp".<br><br></li>
<li><h2>Down.php: </h2><br>
La parte di codice più consistente è presente in questo file, infatti in questa pagina viene svolto tutto il controllo del tempo, per controllare se i 10 minuti dal caricamento sono passati, ma oltre a questo, a mezzanotte nel nuovo giorno, cancellera' per questione di sicurezza, tutto il contenuto della cartella DirUp (dove vengono salvati i file) e il contenuto della tabella file, che è la tabella dove il php associa il codice univoco al file, e sposta tutto sulla tabella FileCancellati.<br>
Se i 10 minuti non sono passati e il file non è stato caricato nei 10 minuti precedenti a mezzanotte, il file viene compresso in formato .zip, questo perchè l'utente non può accedere alla cartella DirUp, per ovvi motivi, infatti il server accede ala cartella comprime il file, ma fa scaricare questo file .zip da una cartella accessibili all'utente. <br><br></li>
<li><h2>Pannello.php:</h2><br>
Questo file, controlla se le credenziali inserite su "controllo.html" sono confermate. Le credenziali sono presenti sulla tabella UtentiAdmin, vengono mostrati i pulsati, che se cliccati mostrano i seguenti elementi: Grafico, Elenco Download, Elenco File, Elenco File Cancellati infine viene creato un form che permette di inserire un nuovo utente admin.<br><br></li>
<li style="text-align: left;"><h2><center>Schema Relazionale:</center></h2> <br><br>
ElencoDate(id,data,CheckC);<br>
ElencoDown(Chiavedown,CodFile,Ipdown,dateG,ora);<br>
file(ID,Codice,Ip,Percorso,data,oraF);<br>
Filecancellati(Id,Percorso,Datacaricamento,Oracaricamento,Codice,Ip,datacaricamento);<br>
FileTot(ID,Codice,Ip,Percorso,data,Ora,OraF);<br>
UtentiAdmin(Id,Username,Password);<br>
</li>
<br>
<br>
<li style="text-align: left;"><h2><center>Sql Tabelle</center></h2> <br><br>
<code style="text-align: left;">
CREATE TABLE IF NOT EXISTS `ElencoDate` (<br>
`Id` int(11) NOT NULL,<br>
`data` date NOT NULL,<br>
`CheckC` tinyint(1) DEFAULT NULL<br>
) ENGINE=InnoDB DEFAULT CHARSET=latin1;<br>
ALTER TABLE `ElencoDate`<br>
ADD PRIMARY KEY (`Id`);<br>
ALTER TABLE `ElencoDate`<br>
MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT;<br>
<br>
<br>
CREATE TABLE IF NOT EXISTS `ElencoDown` (<br>
`Chiavedown` int(11) NOT NULL,<br>
`CodFile` int(11) NOT NULL,<br>
`Ipdown` text,<br>
`dateG` date DEFAULT NULL,<br>
`ora` time DEFAULT NULL<br>
) ENGINE=InnoDB DEFAULT CHARSET=latin1;<br>
ALTER TABLE `ElencoDown`<br>
ADD PRIMARY KEY (`Chiavedown`),<br>
ADD UNIQUE KEY `Chiavedown` (`Chiavedown`);<br>
ALTER TABLE `ElencoDown`<br>
MODIFY `Chiavedown` int(11) NOT NULL AUTO_INCREMENT;<br>
<br><br>
<br>
CREATE TABLE IF NOT EXISTS `file` (<br>
`ID` int(255) NOT NULL,<br>
`Codice` int(255) NOT NULL,<br>
`Ip` text NOT NULL,<br>
`percorso` text NOT NULL,<br>
`data` date NOT NULL,<br>
`ora` time NOT NULL,<br>
`oraF` time DEFAULT NULL<br>
) ENGINE=InnoDB DEFAULT CHARSET=latin1;<br>
ALTER TABLE `file`<br>
ADD PRIMARY KEY (`ID`,`Codice`),<br>
ADD UNIQUE KEY `ID` (`ID`),<br>
ADD UNIQUE KEY `Codice` (`Codice`);<br>
ALTER TABLE `file`<br>
MODIFY `ID` int(255) NOT NULL AUTO_INCREMENT;<br>
<br><br>
CREATE TABLE IF NOT EXISTS `Filecancellati` (<br>
`id` int(11) NOT NULL,<br>
`percorso` text NOT NULL,<br>
`datacaricamento` date NOT NULL,<br>
`oracaricamento` time NOT NULL,<br>
`codice` int(11) NOT NULL,<br>
`ip` text NOT NULL,<br>
`dataoracancellamento` datetime NOT NULL<br>
) ENGINE=InnoDB DEFAULT CHARSET=latin1;<br>
ALTER TABLE `Filecancellati`<br>
ADD PRIMARY KEY (`id`,`oracaricamento`);<br>
ALTER TABLE `Filecancellati`<br>
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=68<br>
<br><br>
CREATE TABLE IF NOT EXISTS `FileTot` (<br>
`ID` int(11) NOT NULL,<br>
`Codice` int(11) NOT NULL,<br>
`Ip` text NOT NULL,<br>
`percorso` text NOT NULL,<br>
`data` date NOT NULL,<br>
`ora` time NOT NULL,<br>
`oraF` time NOT NULL<br>
) ENGINE=InnoDB DEFAULT CHARSET=latin1;<br>
ALTER TABLE `FileTot`<br>
ADD PRIMARY KEY (`ID`);<br>
ALTER TABLE `FileTot`<br>
MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;<br>
<br><br>
CREATE TABLE IF NOT EXISTS `UtentiAdmin` (<br>
`Id` int(11) NOT NULL,<br>
`Username` text NOT NULL,<br>
`Password` text NOT NULL<br>
) ENGINE=InnoDB DEFAULT CHARSET=latin1;<br>
ALTER TABLE `UtentiAdmin`<br>
ADD PRIMARY KEY (`Id`);<br>
ALTER TABLE `UtentiAdmin`<br>
MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT;<br>
</code>
<br>
<br>
</li>
<li style="text-align: left;"><h2><center>Operazioni Database</center></h2><br>
O1= Inserimento nuovo file, 30 volte al giorno. <br>
O2= Inserimento nuova data, 1 volta al giorno. <br>
O3= Visualiazzione elenco download, 2 volte al giorno. <br>
O4= Portare un file dalla relazione "file" a "file cancellati", 30 volte al giorno. <br>
O5= Inserimento nuovo utente admin, 1 volta al mese. <br>
</li>
</ul>
</CENTER>
</div>
</body>
</html>