Sun, 30 Jun 2019 20:06:42 +0200
Version 0.4.6
<?php require($_SERVER['DOCUMENT_ROOT']."/config.php"); require($_SERVER['DOCUMENT_ROOT']."/version.php"); #Connect to the database $connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME); if (! $connect) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } mysqli_set_charset($connect, "utf8" ); $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c"); $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b"); $rescapers = array("'"); $rreplacements = array("\\'"); if (isset($_POST['insert']) || isset($_POST['update'])) { if (isset($_POST['insert'])) { $sql = "INSERT INTO `profile_fermentation` SET "; } if (isset($_POST['update'])) { $sql = "UPDATE `profile_fermentation` SET "; } if (isset($_POST['uuid']) && (strlen($_POST['uuid']) == 36)) { $sql .= "uuid='" . $_POST['uuid']; } else { $uuid = str_replace("\n", "", file_get_contents('/proc/sys/kernel/random/uuid')); $sql .= "uuid='" . $uuid; } $sql .= "', name='" . mysqli_real_escape_string($connect, $_POST['name']); $sql .= "', inittemp_lo='" . floatval($_POST['inittemp_lo']); $sql .= "', inittemp_hi='" . floatval($_POST['inittemp_hi']); ($_POST['fridgemode'] == 'true') ? $sql .= "', fridgemode='1" : $sql .= "', fridgemode='0"; $array = $_POST['steps']; // Don't believe given duration and number of steps, recalculate. $duration = 0; $totalsteps = 0; $steps = '['; foreach($array as $key => $item) { if ($totalsteps > 0) $steps.= ','; $totalsteps++; $duration += $item['steptime'] + $item['resttime']; $steps .= '{"name":"' . str_replace($rescapers,$rreplacements,$item['name']); $steps .= '","steptime":' . $item['steptime']; $steps .= ',"resttime":' . $item['resttime']; $steps .= ',"target_lo":' . $item['target_lo']; $steps .= ',"target_hi":' . $item['target_hi']; $steps .= ',"fridgemode":' . $item['fridgemode'] . '}'; } $steps .= ']'; $sql .= "', totalsteps='" . $totalsteps; $sql .= "', duration='" . $duration; syslog(LOG_NOTICE, $steps); $sql .= "', steps='" . str_replace($rescapers,$rreplacements,json_encode($array)); if (isset($_POST['insert'])) { $sql .= "';"; } if (isset($_POST['update'])) { $sql .= "' WHERE record='" . $_POST['record'] . "';"; } syslog(LOG_NOTICE, $sql); $result = mysqli_query($connect, $sql); if (! $result) { syslog(LOG_NOTICE, "db_profile_fermentation: ".$sql." result: ".mysqli_error($connect)); } else { if (isset($_POST['update'])) { syslog(LOG_NOTICE, "db_profile_fermentation: updated record ".$_POST['record']); } else { $lastid = mysqli_insert_id($connect); syslog(LOG_NOTICE, "db_profile_fermentation: inserted record ".$lastid); } } echo $result; } else if (isset($_POST['delete'])) { // DELETE COMMAND $sql = "DELETE FROM `profile_fermentation` WHERE record='".$_POST['record']."';"; $result = mysqli_query($connect, $sql); if (! $result) { syslog(LOG_NOTICE, "db_profile_fermentation: ".$sql." result: ".mysqli_error($connect)); } else { syslog(LOG_NOTICE, "db_profile_fermentation: deleted record ".$_POST['record']); } echo $result; } else { // SELECT COMMAND $query = "SELECT * FROM profile_fermentation ORDER BY name;"; $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); $profiles = '['; $comma = FALSE; while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { // Manual encode to JSON. if ($comma) { $profiles .= ','; } $comma = TRUE; $profiles .= '{"record":' . $row['record']; $profiles .= ',"uuid":"' . $row['uuid']; $profiles .= '","name":"' . str_replace($escapers, $replacements, $row['name']); $profiles .= '","inittemp_lo":' . $row['inittemp_lo']; $profiles .= ',"inittemp_hi":' . $row['inittemp_hi']; $profiles .= ',"fridgemode":' . $row['fridgemode']; $profiles .= ',"totalsteps":' . $row['totalsteps']; $profiles .= ',"duration":' . $row['duration']; $profiles .= ',"steps":' . $row['steps']; $profiles .= '}'; } $profiles .= ']'; // syslog(LOG_NOTICE, $profiles); header("Content-type: application/json"); echo $profiles; } ?>