diff --git a/core/:q b/core/:q
new file mode 100644
index 0000000..4f53862
--- /dev/null
+++ b/core/:q
@@ -0,0 +1,569 @@
+= time())) {
+ if(!db_login ($_SESSION['username'], $_SESSION['passwd'])) {
+ $tMessage = 'Dati di autenticazione errati';
+ $tUsername = $_SESSION['username'];
+ $_SESSION['auth'] = 0;
+ session_destroy();
+ include ("userlogin.php");
+ exit;
+ } else {
+ logga ($_SERVER['REQUEST_URI']);
+ $_SESSION['time'] = time();
+ return carica_utente ();
+ }
+ } else {
+ if ($_POST['fUsername']) {
+ $fUsername = $_POST['fUsername'];
+ $fPassword = $_POST['fPassword'];
+ if(db_login ($fUsername, $fPassword)) {
+ $_SESSION = array();
+ $_SESSION['passwd'] = $fPassword;
+ $_SESSION['username'] = $fUsername;
+ $_SESSION['auth'] = 1;
+ $_SESSION['time'] = time();
+ session_regenerate_id(TRUE);
+ logga ("Accesso");
+ return carica_utente ();
+ } else {
+ $tMessage = 'Errore';
+ $tUsername = $fUsername;
+ include ("userlogin.php");
+ exit;
+ }
+ } else {
+ if ($_SESSION['auth'] && ($_SESSION['time']+$CONF['temposessione']*60 < time())) {
+ $tMessage = 'Sessione scaduta';
+ $tUsername = $_SESSION['username'];
+ logga ("Sessione scaduta");
+ include ("userlogin.php");
+ exit;
+ } else {
+ include ("userlogin.php");
+ exit;
+ }
+ }
+ }
+}
+
+function carica_conf ($modulo="") {
+ global $CONF, $DB_ID;
+
+ if ($modulo != "") {
+ $query = "SELECT prefisso FROM moduli WHERE nome = '$modulo'";
+ $res = mysql_query( $query, $DB_ID );
+ $dato = mysql_fetch_array ( $res );
+ $tabella = $dato['prefisso']."conf";
+ } else {
+ $tabella = "conf";
+ }
+
+ $query = "SELECT variabile, valore FROM $tabella";
+ $res = mysql_query( $query, $DB_ID );
+ while ($dato = mysql_fetch_array ( $res )) {
+ $tmp[$dato[0]] = $dato[1];
+ }
+ return $tmp;
+}
+
+function isadmin () {
+ global $UTENTE, $CONF;
+ if ($UTENTE['admin']) {
+ return;
+ } else {
+ header("location: ".$CONF['base_url']."/index.php");
+ exit;
+ }
+}
+
+function carica_utente () {
+ global $_SESSION, $CONF, $DB_ID;
+ $query = "SELECT * FROM utenti where utente = '".$_SESSION['username']."'";
+ $res = mysql_query( $query, $DB_ID );
+ $dati = mysql_fetch_array ( $res );
+
+ return $dati;
+}
+
+function is_first_access () {
+ global $_SESSION, $DB_ID, $CONF;
+ $utente = $_SESSION['username'];
+ $query = "SELECT * FROM utenti WHERE utente = '$utente'";
+ $res = mysql_query( $query, $DB_ID );
+ if (!mysql_fetch_array( $res )) {
+ $query = "INSERT INTO utenti SET utente='$utente', max_perm='".$CONF['permanenti']."', max_temp='".$CONF['temporanei']."', creato=now(), max_tempo='".$CONF['tempo_temporanei']."', totale=".$CONF['totale'].", idtemplate=".$CONF['template_base'];
+ mysql_query( $query, $DB_ID );
+ logga ("Creazione nuova utenza");
+ mkdir ($CONF['storage'].'/'.$utente);
+ logga ("Creazione storage utente");
+ }
+}
+
+function logga ($testo, $dest="") {
+ global $_SESSION, $DB_ID, $CONF;
+
+ if ($dest == "") {
+ $destinatario = $_SESSION['username'];
+ } else {
+ $destinatario = $dest;
+ }
+
+ $ip = @$_SERVER["REMOTE_ADDR"];
+ $sessione = session_id();;
+// print "-- $sessione --";
+ $query = "INSERT INTO accessi_utenti SET utente = '$destinatario', quando = now(), ip = '$ip', cosa = '$testo', sessione = '$sessione'";
+ $queryuser = "UPDATE utenti SET ultimo = now() WHERE utente = '$destinatario'";
+// print "-- $query --";
+ $res = mysql_query( $query, $DB_ID );
+ $res = mysql_query( $queryuser, $DB_ID );
+}
+
+function logga_allegati ($id, $cosa) {
+ global $DB_ID, $CONF;
+ $ip = $_SERVER["REMOTE_ADDR"];
+ $query = "INSERT INTO accesso_allegati SET idallegato=$id, quando=now(), cosa='$cosa', ip='$ip'";
+ $res = mysql_query( $query, $DB_ID );
+}
+
+function ultimo_coll () {
+ global $_SESSION, $DB_ID, $CONF;
+ $query = "SELECT DATE_FORMAT(quando, '%d-%m-%Y %H:%i:%s') as quando FROM accessi_utenti WHERE utente = '".$_SESSION['username']."' AND cosa = 'Uscita' order by quando desc limit 1";
+ $res = mysql_query( $query, $DB_ID );
+ $dato = mysql_fetch_array ( $res );
+ if (is_null($dato['quando'])) {
+ return "Primo accesso";
+ } else {
+ return $dato['quando'];
+ }
+}
+
+function codice(){
+ global $DB_ID;
+ $N_Caratteri = 30;
+ $Stringa = "";
+ For($I=0;$I<$N_Caratteri;$I++){
+ do{
+ $N = Ceil(rand(48,122));
+ }while(!((($N >= 48) && ($N <= 57)) || (($N >= 65) && ($N <= 90)) || (($N >= 97) && ($N <= 122))));
+ $Stringa = $Stringa.Chr ($N);
+ }
+
+ $query = "SELECT * FROM allegati WHERE codice='$Stringa' AND vecchio=0";
+ $res = mysql_query( $query, $DB_ID );
+ if (mysql_fetch_array ( $res )) { $stringa = codice(); }
+ return $Stringa;
+}
+
+function invia_mail ($oggetto, $testo, $dest="") {
+ global $UTENTE, $CONF;
+
+ $headers = 'From: noreply@esseweb.eu' . "\r\n" .
+ 'X-Mailer: PHP/' . phpversion();
+
+ if ($dest == "") {
+ $destinatario = $UTENTE['utente'];
+ } else {
+ $destinatario = $dest;
+ }
+ mail($destinatario, $oggetto, $testo, $headers);
+}
+
+function fsize ($stat) {
+ $stat = (float)$stat;
+ $idx = 0;
+ $arr = array("B","kB","MB","GB","TB","PB","EB","ZB","YB");
+ while(floor($stat/1024)>0){
+ $stat = round($stat/1024,2);
+ $idx++;
+ }
+ return $stat." ".$arr[$idx];
+}
+
+function creanome ($idparent) {
+ global $DB_ID;
+ $query = "SELECT interfacce.device, defrule.idparent, defrule.priorita FROM defrule JOIN interfacce ON defrule.idinterfacce = interfacce.id WHERE defrule.id = '$idparent'";
+ $res = mysql_query( $query, $DB_ID );
+ $dato = mysql_fetch_array ( $res );
+ if ($dato['idparent'] == 0) {
+ $ritorno = $dato['device']."-2:".$dato['priorita'];
+ return $ritorno;
+ } else {
+ $ritorno = creanome($dato['idparent']).":".$dato['priorita'];
+ return $ritorno;
+ }
+}
+
+function defrule_att ($id) {
+ global $DB_ID;
+ $query = "UPDATE defrule SET attivo=1, stato=2 WHERE id = $id";
+ if (mysql_query( $query, $DB_ID )) {
+ azioni ("defrule", $id, 1);
+ $query = "SELECT idparent FROM defrule WHERE id = $id";
+ $res = mysql_query( $query, $DB_ID );
+ $dato = mysql_fetch_array ( $res );
+ $parent = $dato['idparent'];
+ if ($parent) {
+ $ritorno = defrule_att($parent);
+ } else {
+ $ritorno = 1;
+ }
+ } else {
+ return mysql_error();
+ }
+ return $ritorno;
+}
+
+function defrule_dis ($id, $stato=2) {
+ global $DB_ID;
+ $ritorno = 1;
+ $query = "UPDATE defrule SET attivo=0, stato=$stato WHERE id = $id";
+ if (mysql_query( $query, $DB_ID )) {
+ azioni ("defrule", $id, 3);
+ if ($stato == 3) {
+ $query_rule = "DELETE FROM rule WHERE iddefrule = $id";
+ mysql_query( $query_rule, $DB_ID );
+ }
+ $query = "SELECT id FROM defrule WHERE idparent = $id AND stato <> 3";
+ if ($res = mysql_query( $query, $DB_ID )) {
+ while ($dato = mysql_fetch_array ($res)) {
+ $ritorno = defrule_dis ($dato['id'], $stato);
+ }
+ } else {
+ return mysql_error();
+ }
+ } else {
+ return mysql_error();
+ }
+ return $ritorno;
+}
+
+function defrule_reset ($iddevice, $idparent, $fw) {
+ global $DB_ID;
+ $query = "SELECT id FROM defrule WHERE idinterfacce = $iddevice AND idparent = $idparent AND attivo = 1 AND stato <> 3";
+ $res = mysql_query( $query, $DB_ID );
+ while ($dato = mysql_fetch_array ($res)) {
+ $id_defrule = $dato['id'];
+ $query_azioni = "INSERT INTO azioni SET fw=$fw, tabella='defrule', idtabella=$id_defrule, stato=1, datains=NOW()";
+ mysql_query( $query_azioni, $DB_ID );
+ defrule_reset ($iddevice, $id_defrule, $fw);
+ }
+}
+
+function maxrate ($idrule, $idparent, $device) {
+ global $DB_ID;
+ if ($idparent == 0) {
+ $querylim = "SELECT rate, ceil FROM interfacce WHERE id = $device";
+ } else {
+ $querylim = "SELECT rate, ceil FROM defrule WHERE id = $idparent";
+ }
+ $queryatt = "SELECT SUM(rate) AS somma FROM defrule WHERE idinterfacce = $device AND attivo = 1 AND stato <> 3 AND id <> $idrule AND idparent = $idparent";
+ $querypri = "SELECT MAX(priorita) AS pri FROM defrule WHERE idinterfacce = $device AND stato <> 3 AND id <> $idrule AND idparent = $idparent AND priorita < 1000";
+
+ $reslim = mysql_query( $querylim, $DB_ID );
+ $datolim = mysql_fetch_array ($reslim);
+ $resatt = mysql_query( $queryatt, $DB_ID );
+ $datoatt = mysql_fetch_array ($resatt);
+ $respri = mysql_query( $querypri, $DB_ID );
+ $datopri = mysql_fetch_array ($respri);
+
+ $ritorno['rate'] = $datolim['rate'] - $datoatt['somma'];
+ $ritorno['ceil'] = $datolim['ceil'];
+ $ritorno['pri'] = $datopri['pri'] + 10;
+
+ return $ritorno;
+}
+
+function azioni ($tabella, $idtabella, $stato) {
+ global $DB_ID;
+
+ $query_fw = "SELECT id FROM firewall WHERE attivo = 1";
+ $res_fw = mysql_query( $query_fw, $DB_ID );
+ while ($dato_fw = mysql_fetch_array ($res_fw)) {
+ $id_fw = $dato_fw['id'];
+ $query_new = "INSERT INTO azioni SET fw = $id_fw, tabella = '$tabella', idtabella = $idtabella, stato = $stato, datains = NOW()";
+// print "$query_new
";
+ mysql_query( $query_new, $DB_ID );
+ }
+}
+
+function lista_moduli () {
+ global $UTENTE, $DB_ID, $CONF;
+
+ $query = " SELECT
+ moduli.id AS id,
+ moduli.nome AS nome,
+ moduli.directory AS directory
+ FROM
+ utenti
+ JOIN
+ permessi ON utenti.id = permessi.id_utenti AND permessi.accesso > 0
+ JOIN
+ moduli ON moduli.id = permessi.id_moduli
+ WHERE
+ utenti.utente = '".$_SESSION['username']."'
+ AND
+ moduli.attivo = 1
+ ";
+
+ $menu[] = array("Home", $CONF['base_url']."/core/main.php",0);
+
+ if ($UTENTE['admin']) {
+ $menu[] = array("Configurazione", $CONF['base_url']."/core/conf.php");
+ $query .= " UNION DISTINCT SELECT
+ moduli.nome AS nome,
+ moduli.directory AS directory
+ FROM
+ moduli
+ WHERE
+ moduli.superadmin > 0
+ AND
+ moduli.attivo = 1
+ ";
+ }
+
+ $res = mysql_query( $query, $DB_ID );
+
+ while ($dato = mysql_fetch_array ($res)) {
+ $menu[] = array($dato['nome'], $CONF['base_url']."/".$dato['directory']."/index.php",$dato['id']);
+ }
+
+ $menu[] = array("Cambio password", $CONF['base_url']."/core/chkpasswd.php",0);
+
+ $pezzi = preg_split('/\//', $_SERVER["PHP_SELF"], -2);
+ $self = $pezzi[count($pezzi)-1];
+?>
+
+
+
+
+
+
+
+
+
+
+  |
+
+ |
+
+
+
+ |
+
+
+
+
+  |
+
+
+
+
+
+
+
+
+
+
+= $minimo) {
+ return $risposta;
+ } else {
+ header("location: ".$CONF['base_url']."/index.php");
+ exit;
+ }
+}
+
+function get_levels () {
+ global $DB_ID;
+
+ $query = "SELECT nome, livello FROM livelli ORDER BY livello";
+ $res = mysql_query( $query, $DB_ID );
+ $livelli = array();
+ while ($dato = mysql_fetch_array ($res)) {
+ $livelli[$dato['livello']] = $dato['nome'];
+ }
+ return $livelli;
+
+}
+
+function view_top () {
+ global $CONF, $UTENTE;
+ include_once ($_SERVER["CONTEXT_DOCUMENT_ROOT"].$CONF['base_url']."/core/top.php");
+}
+
+function view_footer () {
+ global $CONF, $UTENTE;
+ include_once ($_SERVER["CONTEXT_DOCUMENT_ROOT"].$CONF['base_url']."/core/footer.php");
+}
+?>
diff --git a/core/function.php b/core/function.php
index c4b711c..b1f5435 100755
--- a/core/function.php
+++ b/core/function.php
@@ -342,6 +342,7 @@ function lista_moduli () {
global $UTENTE, $DB_ID, $CONF;
$query = " SELECT
+ moduli.id AS id,
moduli.nome AS nome,
moduli.directory AS directory
FROM
@@ -356,11 +357,12 @@ function lista_moduli () {
moduli.attivo = 1
";
- $menu[] = array("Home", $CONF['base_url']."/core/main.php");
+ $menu[] = array("Home", $CONF['base_url']."/core/main.php",0);
if ($UTENTE['admin']) {
$menu[] = array("Configurazione", $CONF['base_url']."/core/conf.php");
$query .= " UNION DISTINCT SELECT
+ moduli.id AS id,
moduli.nome AS nome,
moduli.directory AS directory
FROM
@@ -375,29 +377,40 @@ function lista_moduli () {
$res = mysql_query( $query, $DB_ID );
while ($dato = mysql_fetch_array ($res)) {
- $menu[] = array($dato['nome'], $CONF['base_url']."/".$dato['directory']."/index.php");
+ $menu[] = array($dato['nome'], $CONF['base_url']."/".$dato['directory']."/index.php",$dato['id']);
}
- $menu[] = array("Cambio password", $CONF['base_url']."/core/chkpasswd.php");
+ $menu[] = array("Cambio password", $CONF['base_url']."/core/chkpasswd.php",0);
$pezzi = preg_split('/\//', $_SERVER["PHP_SELF"], -2);
$self = $pezzi[count($pezzi)-1];
?>
-
-
-
+
-  |
- |
-
-  |
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/proxy/barra.php b/proxy/barra.php
new file mode 100644
index 0000000..62c7fb1
--- /dev/null
+++ b/proxy/barra.php
@@ -0,0 +1,23 @@
+
diff --git a/proxy/index.php b/proxy/index.php
index 3ba40bd..0f42724 100755
--- a/proxy/index.php
+++ b/proxy/index.php
@@ -2,33 +2,68 @@
include_once ("../core/config.php");
$UTENTE = login();
$DIRITTI = diritti(1);
-view_top(); ?>
+view_top();
+?>
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+/*
+$ric = $valori['ricevuti'];
+$inv = $valori['inviati'];
+*/
+$query = "SELECT ip, ricevuti, inviati FROM proxy_speed ORDER BY ricevuti desc , inviati desc";
+$res = mysql_query( $query, $DB_ID );
+while ($dato = mysql_fetch_array ( $res )) {
+?>
+
+ |
+  |
+  |
+
+ |
+  |
+ Inviati |
+  |
+ |
+  |
+  |
+  |
+
+
+
+ | Ricevuti |
+  |
+ |
+  |
+  |
+  |
+
+
+  |
+
+
+
+
diff --git a/proxy/lista.php b/proxy/lista.php
new file mode 100755
index 0000000..7eccc40
--- /dev/null
+++ b/proxy/lista.php
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+ |
+  |
+  |
+
+ |
+  |
+ Inviati |
+  |
+ |
+  |
+  |
+  |
+
+
+
+ | Ricevuti |
+  |
+ |
+  |
+  |
+  |
+
+
+  |
+
+
+
+
+
diff --git a/risorse/stili/stile.css b/risorse/stili/stile.css
index 13c7da3..1f1d8a1 100644
--- a/risorse/stili/stile.css
+++ b/risorse/stili/stile.css
@@ -39,7 +39,6 @@ td.rtop { font-family: verdana; font-size: 14px; text-align: right; vertical-al
td.lbottom { font-family: verdana; font-size: 14px; text-align: left; vertical-align:text-top; text-decoration: none; color: #000000; }
td.rbottom { font-family: verdana; font-size: 14px; text-align: right; vertical-align:text-top; text-decoration: none; color: #5191D5; }
a.rtop { font-family: verdana; font-size: 14px; text-align: right; vertical-align:text-top; text-decoration: none; color: #5191D5; }
-td.col3campo2 { font-family: verdana; font-size: 10px; text-align: left; vertical-align:middle; width:120px; height: 10px; text-decoration: none; color: #000000; white-space: nowrap}
td.lmain { font-family: verdana; font-size: 14px; text-align: left; vertical-align:text-top; text-decoration: none; color: #000000; }
td.rmain { font-family: verdana; font-size: 14px; text-align: right; vertical-align:text-top; text-decoration: none; color: #000000; }
@@ -58,9 +57,82 @@ td.col3 { font-family: verdana; font-size: 14px; text-align: left; vertical-ali
td.col3btn { font-family: verdana; font-size: 14px; text-align: center; vertical-align:middle; width:30px; text-decoration: none; color: #000000; }
td.col3spa { font-family: verdana; font-size: 14px; text-align: left; vertical-align:middle; width:30px; text-decoration: none; color: #000000; }
td.col3campo { font-family: verdana; font-size: 12px; text-align: left; vertical-align:middle; width:120px; height: 20px; text-decoration: none; color: #000000; }
+td.col3campo2 { font-family: verdana; font-size: 10px; text-align: left; vertical-align:middle; width:120px; height: 10px; text-decoration: none; color: #000000; white-space: nowrap}
td.col3valore { font-family: verdana; font-size: 12px; text-align: left; vertical-align:middle; width:200px; height: 20px; text-decoration: none; color: #000000; }
td.col3valore2 { font-family: verdana; font-size: 10px; text-align: left; vertical-align:middle; width:200px; height: 10px; text-decoration: none; color: #000000; }
+td.colip { font-family: verdana; font-size: 10px; text-align: left; vertical-align:middle; width:80px; height: 10px; text-decoration: none; color: #000000; white-space: nowrap}
+td.colspeed { font-family: verdana; font-size: 10px; text-align: left; vertical-align:middle; width:80px; height: 10px; text-decoration: none; color: #000000; white-space: nowrap}
+td.colimg { font-family: verdana; font-size: 11px; text-align: left; height:1px; text-decoration: none; color: #8e8e8e; white-space: nowrap}
+
+/*------------------------------------*\
+ NAV
+\*------------------------------------*/
+#nav{
+ list-style:none;
+ font-weight:bold;
+ margin-bottom:10px;
+ float:left; /* Clear floats */
+ width:100%;
+ /* Bring the nav above everything else--uncomment if needed.
+ position:relative;
+ z-index:5;
+ */
+}
+#nav li{
+ float:left;
+ margin-right:10px;
+ position:relative;
+}
+#nav a{
+ display:block;
+ padding:3px;
+ color:#fff;
+ background:#333;
+ text-decoration:none;
+}
+#nav a.sel{
+ display:block;
+ padding:3px;
+ color:#fff;
+ background:#888;
+ text-decoration:none;
+}
+#nav a:hover{
+ color:#fff;
+ background:#5191D5;
+ text-decoration:underline;
+}
+
+/*--- DROPDOWN ---*/
+#nav ul{
+ background:#fff;
+ background:rgba(255,255,255,0); /* But! Let's make the background fully transparent where we can, we don't actually want to see it if we can help it... */
+ list-style:none;
+ position:absolute;
+ left:-9999px; /* Hide off-screen when not needed (this is more accessible than display:none;) */
+}
+#nav ul li{
+ padding-top:1px; /* Introducing a padding between the li and the a give the illusion spaced items */
+ float:none;
+}
+#nav ul a{
+ white-space:nowrap; /* Stop text wrapping and creating multi-line dropdown items */
+}
+#nav li:hover ul{ /* Display the dropdown on hover */
+ left:0; /* Bring back on-screen when needed */
+}
+#nav li:hover a{ /* These create persistent hover states, meaning the top-most link stays 'hovered' even when your cursor has moved down the list. */
+ background:#5191D5;
+ text-decoration:underline;
+}
+#nav li:hover ul a{ /* The persistent hover state does however create a global style for links even before they're hovered. Here we undo these effects. */
+ text-decoration:none;
+}
+#nav li:hover ul li a:hover{ /* Here we define the most explicit hover states--what happens when you hover each individual link. */
+ background:#5191D5;
+}
+
-->