Транзакционность при коротких сессиях с БД не требуется, все в одну операцию.
[weathermon.git] / web / send.php
1 <?php
2     require_once 'config_local.php';
3
4
5     $client_ip = $_SERVER["REMOTE_ADDR"];
6
7     if ((strpos($client_ip, "192.168.") === 0) || (strpos($client_ip, "10.8.") === 0) || (strpos($client_ip, "2001:470:6f:9d5:") === 0)) {
8
9    
10       $local_net = True;
11             
12     } else {
13   
14       $local_net = False;
15   
16     }
17
18
19
20     if (! $local_net) { 
21       header('HTTP/1.1 403 Forbidden');
22       echo "IP not in allowed range";
23       exit;
24     }
25
26
27     $stype = $_REQUEST['stype'];
28     $sid   = $_REQUEST['sid'];
29     $param = $_REQUEST['param'];
30     $value = $_REQUEST['value'];
31
32     if (isset($_REQUEST['time'])) {
33     
34       $timestamp = "'".$_REQUEST['time']."'";
35     
36     } else {
37     
38       $timestamp = 'NULL';
39     
40     }
41
42     
43
44     $connection = new mysqli($mysql_host, $mysql_user, $mysql_pwd, $mysql_schema, $mysql_port);
45     if ($connection->connect_errno) {
46         header('HTTP/1.1 500 Internal Server Error');
47         exit;    
48     }
49         
50     $str = "CALL meteo.submit_value('".$stype."','".$sid."','".$param."',".$value.",".$timestamp.")";
51     if (!$connection->query($str)) {
52         header('HTTP/1.1 500 Internal Server Error');
53         echo "$str\n";
54         echo "Call Failed\n";
55         exit;    
56     } else {
57         $connection->commit();
58         echo "OK Logged";    
59     }
60