}
a:visited { text-decoration: none; color:darkblue; }
a:link { text-decoration: none; color:blue; }
- a:hover { text-decoration: none; color:navy; }
+ a:hover { text-decoration: underline; color:navy; }
</style>
</head>
<body text="black" bgcolor="silver" link="blue" vlink="#000080" alink="#FF0000">
include('calendar.php');
include('units.php');
+ $client_ip = $_SERVER["REMOTE_ADDR"];
+
+ if ((strpos($client_ip, "192.168.") === 0) || (strpos($client_ip, "10.8.") === 0)
+ || (strpos($client_ip, "2a02:578:5002:8174:") === 0)
+ || (strpos($client_ip, "2a02:578:5002:196::2") === 0)) {
+
+ $local_net = True;
+
+ } else {
+
+ $local_net = False;
+
+ }
+
+
$year = $_REQUEST['year'];
$month = $_REQUEST['month'];
$day = $_REQUEST['day'];
<?php
while ($row = $q -> fetch(PDO::FETCH_ASSOC)) {
?>
- <a class="year" href="?year=<?php echo $row['year']; ?>">Данные за <?php echo $row['year']; ?> год</a><br>
+ <a class="year" href="?year=<?php echo $row['year']; ?>">Данные за <?php echo $row['year']; ?> год</a>
<?php
}
$next_year = $year+1;
+ if (!$local_net) {
+
+ $filter = ' and s.is_public=1';
+
+ } else {
+
+ $filter = '';
+
+ }
+
+
+
$q = $db -> prepare (
'select
s.id sensor,p.id param,s.s_description sensor_name,p.st_description param_name,
v.parameter=p.id and
p.st_unit=u.id and
v.day>=str_to_date(\''.$year.'-01-01\',\'%Y-%m-%d\') and
- v.day<str_to_date(\''.$next_year.'-01-01\',\'%Y-%m-%d\')
+ v.day<str_to_date(\''.$next_year.'-01-01\',\'%Y-%m-%d\''.$filter.')
group by s.id,p.id,s.s_description,p.st_description
order by s.id,p.id'
);
$month = sprintf('%02d',$month);
$year = sprintf('%04d',$year);
+ if (!$local_net) {
+
+ $filter = ' and s.is_public=1';
+
+ } else {
+
+ $filter = '';
+
+ }
+
+
$q = $db -> prepare(
'select
date_format(day,\'%d\') as day
from
- sensors_ranges
+ sensors_ranges r,sensors s
where
+ s.id=r.sensor and
day>=str_to_date(\''.$year.'-'.$month.'-01\',\'%Y-%m-%d\') and
- day<str_to_date(\''.$next_year.'-'.$next_month.'-01\',\'%Y-%m-%d\')
+ day<str_to_date(\''.$next_year.'-'.$next_month.'-01\',\'%Y-%m-%d\')'.$filter.'
group by day
order by day'
);
}
calendar($year,$month,$days,'?year='.$year.'&month='.$month.'&day=%s',3);
+
+ if (!$local_net) {
+
+ $filter = ' and s.is_public=1';
+
+ } else {
+
+ $filter = '';
+
+ }
+
$q = $db -> prepare (
'select
v.parameter=p.id and
p.st_unit=u.id and
v.day>=str_to_date(\''.$year.'-'.$month.'-01\',\'%Y-%m-%d\') and
- v.day<str_to_date(\''.$next_year.'-'.$next_month.'-01\',\'%Y-%m-%d\')
+ v.day<str_to_date(\''.$next_year.'-'.$next_month.'-01\',\'%Y-%m-%d\')'.$filter.'
group by s.id,p.id,s.s_description,p.st_description
order by s.id,p.id'
);
$year = sprintf('%04d',$year);
$day = sprintf('%02d',$day);
+ if (!$local_net) {
+
+ $filter = ' and s.is_public=1';
+
+ } else {
+
+ $filter = '';
+
+ }
+
+
$q = $db -> prepare(
'select
distinct v.sensor as sensor_id,s.s_description,p.id as param_id,p.st_description
where
v.day=str_to_date(\''.$year.'-'.$month.'-'.$day.'\',\'%Y-%m-%d\')
and v.sensor=s.id
- and v.parameter=p.id'
+ and v.parameter=p.id'.$filter
);
$q -> execute();
--- /dev/null
+<?php
+
+ $mysql_host = 'rvb.name';
+ $mysql_schema = 'meteo';
+ $mysql_user = 'meteo';
+ $mysql_pwd = 'somestrongpasswd';
+ $mysql_port = 3306;
+
+ setlocale(LC_ALL,'ru_RU.UTF8');
+
+ $valid_ip_start = ip2long('192.168.1.0');
+ $valid_ip_end = ip2long('192.168.1.255');
+
+?>
\ No newline at end of file
<style type="text/css">
a:visited { text-decoration: none; color:darkblue; }
a:link { text-decoration: none; color:blue; }
- a:hover { text-decoration: none; color:navy; }
+ a:hover { text-decoration: underline; color:navy; }
</style>
</head>
<body text="black" bgcolor="silver" link="blue" vlink="#000080" alink="#FF0000">
include('config_local.php');
+$client_ip = $_SERVER["REMOTE_ADDR"];
+
+if ((strpos($client_ip, "192.168.") === 0) || (strpos($client_ip, "10.8.") === 0)
+ || (strpos($client_ip, "2a02:578:5002:8174:") === 0)
+ || (strpos($client_ip, "2a02:578:5002:196::2") === 0)) {
+
+ $local_net = True;
+
+} else {
+
+ $local_net = False;
+
+}
+
+
if (! ($db = new PDO("mysql:host=$mysql_host;port=$mysql_port;dbname=$mysql_schema",$mysql_user,$mysql_pwd,array( PDO::ATTR_PERSISTENT => false)))) {
die($err);
}
$db -> exec('SET CHARACTER SET utf8');
+if (!$local_net) {
+
+ $filter = ' and s.is_public=1';
+
+} else {
+
+ $filter = '';
+
+}
+
$q = $db -> prepare(
'select
distinct v.sensor_id,s.s_description,p.id as param_id,p.st_description
v.timestamp>adddate(now(), -1)
and v.sensor_id=s.id
and s.st_id=p.st_id
- and p.id>=0
+ and p.id>=0'.$filter.'
order by s_description,st_description'
);
$q -> execute();
$g->xaxis->SetPos("min");
# $g->xaxis->scale->SetTimeAlign( HOURADJ_1 );
- // We use a scatterplot to illustrate the original
- // contro points.
- $splot = new ScatterPlot($ydata,$xdata);
- $g->Add($splot);
-
- //
- $splot->mark->SetFillColor($dot_color);
- $splot->mark->SetColor($dot_color);
- $splot->mark->SetType(MARK_FILLEDCIRCLE);
- $splot->mark->SetSize(2);
+
+ if ($type!="last24small") {
+
+ // We use a scatterplot to illustrate the original
+ // contro points.
+ $splot = new ScatterPlot($ydata,$xdata);
+ $g->Add($splot);
+
+ //
+ $splot->mark->SetFillColor($dot_color);
+ $splot->mark->SetColor($dot_color);
+ $splot->mark->SetType(MARK_FILLEDCIRCLE);
+ $splot->mark->SetSize(2);
+
+ }
$fplot = new LinePlot($f_ydata,$xdata);
$g->Add($fplot);
$next_year = $year;
$next_month = $month+1;
- if ($month==13) {
+ if ($month==12) {
$next_year++;
$next_month=1;
-
+
}
$curr = date("Ym");
+ $ym=sprintf('%04d%02d',$next_year,$next_month);
- if ($curr>$next_year.$next_month) {
+ if ($curr>$ym) {
$cachefilename='meteo.month.'.$sensor.'.'.$param.'.'.$to_unit.'.'.$year.'-'.$month.'.'.$img_format;
<style type="text/css">
a:visited { text-decoration: none; color:darkblue; }
a:link { text-decoration: none; color:blue; }
- a:hover { text-decoration: none; color:navy; }
+ a:hover { text-decoration: underline; color:navy; }
.header { font-size: 16; float: left; margin: 10px;}
.timestamp { font-size: 16; margin: 10px;}
.value { font-size: 60; margin: 10px; }
<div class="container">
<?php
+ $client_ip = $_SERVER["REMOTE_ADDR"];
+
+ if ((strpos($client_ip, "192.168.") === 0) || (strpos($client_ip, "10.8.") === 0)
+ || (strpos($client_ip, "2a02:578:5002:8174:") === 0)
+ || (strpos($client_ip, "2a02:578:5002:196::2") === 0)) {
+
+ $local_net = True;
+
+ } else {
+
+ $local_net = False;
+
+ }
+
include('config_local.php');
include('units.php');
$db -> exec('SET CHARACTER SET utf8');
+if (!$local_net) {
+
+ $filter = ' and s.is_public=1';
+
+} else {
+
+ $filter = '';
+
+}
+
$q = $db -> prepare(
'select
distinct v.sensor_id,s.s_description,p.id as param_id,p.st_description
sensor_values v,st_parameters p,sensors s
where
v.timestamp>adddate(now(), -1)
- and v.sensor_id=s.id
+ and v.sensor_id=s.id
+ and v.parameter_id=p.id
and s.st_id=p.st_id
- and p.id>=0
+ and p.id>=0'.$filter.'
order by s_description,st_description'
);
$q -> execute();
$ql -> execute();
$printable_ts = "?";
-$value = "?";
+$val = "?";
if ($rowl = $ql -> fetch(PDO::FETCH_ASSOC)) {
$from_unit = $units['from'];
$to_unit = $units['to'];
$param_unit = $units['name'];
-
+
$val = convert_unit($db,$value,$from_unit,$to_unit);
}
-echo '<div class="timestamp">'.$printable_ts.'</div>';
-echo '<div class="value">'.$val.' '.$param_unit.'</div>';
+if ($printable_ts != '?') {
+ echo '<div class="timestamp">'.$printable_ts.'</div>';
+ echo '<div class="value">'.$val.' '.$param_unit.'</div>';
+}
?>
-<div class="graph"><img src="image.php?sensor=<?php echo $row['sensor_id']; ?>¶m=<?php echo $row['param_id']?>&type=last24small"></div>
+<div class="graph"><a href="image.php?sensor=<?php echo $row['sensor_id']; ?>¶m=<?php echo $row['param_id']?>&type=last24"><img src="image.php?sensor=<?php echo $row['sensor_id']; ?>¶m=<?php echo $row['param_id']?>&type=last24small"></a></div>
<?php
echo "</div>";
}
$str = "CALL meteo.submit_value('".$stype."','".$sid."','".$param."',".$value.",NULL)";
- if (!$connection->query($str)) {
- header('HTTP/1.1 500 Internal Server Error');
- exit;
- } else {
- $connection->commit();
-?>
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Meteo logger</title>
-</head>
-<body>
-OK Logged
-</body>
-</html>
-<?
+ if (!$connection->query($str)) {
+ header('HTTP/1.1 500 Internal Server Error');
+ exit;
+ } else {
+ $connection->commit();
+ echo "OK Logged";
}
-?>