Fri, 11 Jan 2019 22:34:19 +0100
Added profile fermentation editor.
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 | // syslog(LOG_NOTICE, 'Keep uuid '); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
30 | } else { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
31 | $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
|
32 | $sql .= "uuid='" . $uuid; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
33 | // syslog(LOG_NOTICE, 'New uuid '); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
34 | } |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
35 | |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
36 | $sql .= "', name='" . mysqli_real_escape_string($connect, $_GET['name']); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
37 | $sql .= "', inittemp_lo='" . floatval($_GET['inittemp_lo']); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
38 | $sql .= "', inittemp_hi='" . floatval($_GET['inittemp_hi']); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
39 | ($_GET['fridgemode'] == 'true') ? $sql .= "', fridgemode='1" : $sql .= "', fridgemode='0"; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
40 | $array = $_GET['steps']; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
41 | // Don't believe given duration and number of steps, recalculate. |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
42 | $duration = 0; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
43 | $totalsteps = 0; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
44 | foreach($array as $key => $item) { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
45 | $totalsteps++; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
46 | $duration += $item['steptime'] + $item['resttime']; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
47 | foreach ($disallowed as $disallowed_key) { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
48 | unset($array[$key]["$disallowed_key"]); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
49 | } |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
50 | } |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
51 | $sql .= "', totalsteps='" . $totalsteps; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
52 | $sql .= "', duration='" . $duration; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
53 | // syslog(LOG_NOTICE, "steps=: ". str_replace($rescapers,$rreplacements,json_encode($array))); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
54 | $sql .= "', steps='" . str_replace($rescapers,$rreplacements,json_encode($array)); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
55 | if (isset($_GET['insert'])) { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
56 | $sql .= "';"; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
57 | } |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
58 | if (isset($_GET['update'])) { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
59 | $sql .= "' WHERE record='" . $_GET['record'] . "';"; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
60 | } |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
61 | syslog(LOG_NOTICE, $sql); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
62 | $result = mysqli_query($connect, $sql); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
63 | if (! $result) { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
64 | syslog(LOG_NOTICE, "db_profile_fermentation: ".$sql." result: ".mysqli_error($connect)); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
65 | } else { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
66 | if (isset($_GET['update'])) { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
67 | syslog(LOG_NOTICE, "db_profile_fermentation: updated record ".$_GET['record']); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
68 | } else { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
69 | $lastid = mysqli_insert_id($connect); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
70 | syslog(LOG_NOTICE, "db_profile_fermentation: inserted record ".$lastid); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
71 | } |
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 | echo $result; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
74 | |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
75 | } else if (isset($_GET['delete'])) { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
76 | // DELETE COMMAND |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
77 | $sql = "DELETE FROM `profile_fermentation` WHERE record='".$_GET['record']."';"; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
78 | $result = mysqli_query($connect, $sql); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
79 | if (! $result) { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
80 | syslog(LOG_NOTICE, "db_profile_fermentation: ".$sql." result: ".mysqli_error($connect)); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
81 | } else { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
82 | syslog(LOG_NOTICE, "db_profile_fermentation: deleted record ".$_GET['record']); |
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 | echo $result; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
85 | |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
86 | } else { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
87 | // SELECT COMMAND |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
88 | $query = "SELECT * FROM profile_fermentation ORDER BY name;"; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
89 | $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
|
90 | $profiles = '['; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
91 | $comma = FALSE; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
92 | while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
93 | // Manual encode to JSON. |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
94 | if ($comma) { |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
95 | $profiles .= ','; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
96 | } |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
97 | $comma = TRUE; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
98 | $profiles .= '{"record":' . $row['record']; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
99 | $profiles .= ',"uuid":"' . $row['uuid']; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
100 | $profiles .= '","name":"' . str_replace($escapers, $replacements, $row['name']); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
101 | $profiles .= '","inittemp_lo":' . $row['inittemp_lo']; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
102 | $profiles .= ',"inittemp_hi":' . $row['inittemp_hi']; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
103 | $profiles .= ',"fridgemode":' . $row['fridgemode']; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
104 | $profiles .= ',"totalsteps":' . $row['totalsteps']; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
105 | $profiles .= ',"duration":' . $row['duration']; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
106 | $profiles .= ',"steps":' . $row['steps']; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
107 | $profiles .= '}'; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
108 | } |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
109 | $profiles .= ']'; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
110 | // syslog(LOG_NOTICE, $profiles); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
111 | header("Content-type: application/json"); |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
112 | echo $profiles; |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
113 | } |
a7c2c61a01ad
Added profile fermentation editor.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
114 | ?> |