www/includes/db_profile_fermentation.php

Sat, 19 Jan 2019 12:05:37 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 19 Jan 2019 12:05:37 +0100
changeset 189
6470e5c6a001
parent 186
a7c2c61a01ad
child 217
318aab371497
permissions
-rw-r--r--

In bmsd added missing json percent. The Makefile didn't install the fpdf library. Added profile commands. Small changes to the monitor fermenters screen. The monitor fermenters scheduler is now more responsive. Profiles selection and commands in the remote thermferm.

186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
1 <?php
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
2
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
3 require($_SERVER['DOCUMENT_ROOT']."/config.php");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
4 require($_SERVER['DOCUMENT_ROOT']."/version.php");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
5
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
6 #Connect to the database
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
7 $connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
8 if (! $connect) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
9 die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
10 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
11 mysqli_set_charset($connect, "utf8" );
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
12
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
13 $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
14 $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
15 $rescapers = array("'");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
16 $rreplacements = array("\\'");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
17 $disallowed = array('visibleindex','uniqueid','boundindex','uid','undefined');
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
18
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
19 if (isset($_GET['insert']) || isset($_GET['update'])) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
20 if (isset($_GET['insert'])) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
21 $sql = "INSERT INTO `profile_fermentation` SET ";
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
22 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
23 if (isset($_GET['update'])) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
24 $sql = "UPDATE `profile_fermentation` SET ";
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
25 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
26
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
27 if (isset($_GET['uuid']) && (strlen($_GET['uuid']) == 36)) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
28 $sql .= "uuid='" . $_GET['uuid'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
29 } else {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
30 $uuid = str_replace("\n", "", file_get_contents('/proc/sys/kernel/random/uuid'));
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
31 $sql .= "uuid='" . $uuid;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
32 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
33
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
34 $sql .= "', name='" . mysqli_real_escape_string($connect, $_GET['name']);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
35 $sql .= "', inittemp_lo='" . floatval($_GET['inittemp_lo']);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
36 $sql .= "', inittemp_hi='" . floatval($_GET['inittemp_hi']);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
37 ($_GET['fridgemode'] == 'true') ? $sql .= "', fridgemode='1" : $sql .= "', fridgemode='0";
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
38 $array = $_GET['steps'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
39 // Don't believe given duration and number of steps, recalculate.
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
40 $duration = 0;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
41 $totalsteps = 0;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
42 foreach($array as $key => $item) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
43 $totalsteps++;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
44 $duration += $item['steptime'] + $item['resttime'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
45 foreach ($disallowed as $disallowed_key) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
46 unset($array[$key]["$disallowed_key"]);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
47 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
48 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
49 $sql .= "', totalsteps='" . $totalsteps;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
50 $sql .= "', duration='" . $duration;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
51 // syslog(LOG_NOTICE, "steps=: ". str_replace($rescapers,$rreplacements,json_encode($array)));
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
52 $sql .= "', steps='" . str_replace($rescapers,$rreplacements,json_encode($array));
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
53 if (isset($_GET['insert'])) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
54 $sql .= "';";
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
55 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
56 if (isset($_GET['update'])) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
57 $sql .= "' WHERE record='" . $_GET['record'] . "';";
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
58 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
59 syslog(LOG_NOTICE, $sql);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
60 $result = mysqli_query($connect, $sql);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
61 if (! $result) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
62 syslog(LOG_NOTICE, "db_profile_fermentation: ".$sql." result: ".mysqli_error($connect));
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
63 } else {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
64 if (isset($_GET['update'])) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
65 syslog(LOG_NOTICE, "db_profile_fermentation: updated record ".$_GET['record']);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
66 } else {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
67 $lastid = mysqli_insert_id($connect);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
68 syslog(LOG_NOTICE, "db_profile_fermentation: inserted record ".$lastid);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
69 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
70 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
71 echo $result;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
72
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
73 } else if (isset($_GET['delete'])) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
74 // DELETE COMMAND
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
75 $sql = "DELETE FROM `profile_fermentation` WHERE record='".$_GET['record']."';";
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
76 $result = mysqli_query($connect, $sql);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
77 if (! $result) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
78 syslog(LOG_NOTICE, "db_profile_fermentation: ".$sql." result: ".mysqli_error($connect));
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
79 } else {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
80 syslog(LOG_NOTICE, "db_profile_fermentation: deleted record ".$_GET['record']);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
81 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
82 echo $result;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
83
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
84 } else {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
85 // SELECT COMMAND
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
86 $query = "SELECT * FROM profile_fermentation ORDER BY name;";
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
87 $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect));
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
88 $profiles = '[';
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
89 $comma = FALSE;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
90 while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
91 // Manual encode to JSON.
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
92 if ($comma) {
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
93 $profiles .= ',';
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
94 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
95 $comma = TRUE;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
96 $profiles .= '{"record":' . $row['record'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
97 $profiles .= ',"uuid":"' . $row['uuid'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
98 $profiles .= '","name":"' . str_replace($escapers, $replacements, $row['name']);
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
99 $profiles .= '","inittemp_lo":' . $row['inittemp_lo'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
100 $profiles .= ',"inittemp_hi":' . $row['inittemp_hi'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
101 $profiles .= ',"fridgemode":' . $row['fridgemode'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
102 $profiles .= ',"totalsteps":' . $row['totalsteps'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
103 $profiles .= ',"duration":' . $row['duration'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
104 $profiles .= ',"steps":' . $row['steps'];
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
105 $profiles .= '}';
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
106 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
107 $profiles .= ']';
189
6470e5c6a001 In bmsd added missing json percent. The Makefile didn't install the fpdf library. Added profile commands. Small changes to the monitor fermenters screen. The monitor fermenters scheduler is now more responsive. Profiles selection and commands in the remote thermferm.
Michiel Broek <mbroek@mbse.eu>
parents: 186
diff changeset
108 syslog(LOG_NOTICE, $profiles);
186
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
109 header("Content-type: application/json");
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
110 echo $profiles;
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
111 }
a7c2c61a01ad Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff changeset
112 ?>

mercurial