Skip to content

Instantly share code, notes, and snippets.

@kiichi
Created April 23, 2015 20:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kiichi/c7568259fe50f2505f30 to your computer and use it in GitHub Desktop.
Save kiichi/c7568259fe50f2505f30 to your computer and use it in GitHub Desktop.
This is a sample script when you push data from iSeismometer app to your own server. See all $_GET[] to find out parameters if you translate it into other platforms. If you create another translator, let me know! Thank you
<?php
//==========================================================================================
// iSeismometer Data Receiver version 1.0
// I released this program as public domain. Feel free to use this at your own risk.
// - by Kiichi 2009/02/16
//==========================================================================================
/*
CREATE TABLE IF NOT EXISTS `signals` (
`signal_id` int(11) NOT NULL auto_increment,
`device_id` varchar(50) NOT NULL,
`lat` float NOT NULL,
`lon` float NOT NULL,
`alt` float NOT NULL,
`sampling` int(11) NOT NULL,
`version` varchar(50) NOT NULL,
`comment` varchar(512) NOT NULL,
`data` text NOT NULL,
`created_date` datetime NOT NULL,
`local_datetime` datetime NOT NULL,
PRIMARY KEY (`signal_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
*/
//==========================================================================================
$link = mysql_connect('localhost', 'your_database_user', 'your_database_password');
mysql_select_db('iseismometer', $link);
session_start();
function sanitize($value) {
if (get_magic_quotes_gpc()) {
$value = stripslashes($value);
}
if(version_compare(phpversion(),"4.3.0") == "-1") {
return mysql_escape_string($value);
}
else {
return mysql_real_escape_string($value);
}
}
$signal_id=sanitize($_GET['signal_id']);
$device_id=sanitize($_GET['device_id']);
$lat=sanitize($_GET['lat']);
$lon=sanitize($_GET['lon']);
$alt=sanitize($_GET['alt']);
$sampling=sanitize($_GET['sampling']);
$version=sanitize($_GET['version']);
$action=sanitize($_GET['action']);
$comment=sanitize($_GET['comment']);
$local_datetime=sanitize($_GET['local_datetime']);
$signal=sanitize($_POST['signal']);
//-------------------------------------------------------------------------------------------------------------------------
// Action - Add = Insert data
if (isset($action) && $action=="add") {
$sql = "INSERT INTO `iseismometer`.`signals` (`signal_id`, `device_id`, `lat`, `lon`, `alt`, `sampling`, `version`, `comment`, `data`,`created_date`,`local_datetime`) VALUES (NULL, '".$device_id."', '".$lat."', '".$lon."', '".$alt."', '".$sampling."', '".$version."', '".$comment."', '".$signal."',NOW(),'".$local_datetime."');";
mysql_query($sql, $link);
}
//-------------------------------------------------------------------------------------------------------------------------
// Action - download = export csv
if (isset($action) && $action=="download") {
$sql = "SELECT data FROM signals WHERE signal_id=".$signal_id;
$result = mysql_query($sql, $link);
$row = mysql_fetch_assoc($result);
header ('Content-type: Application/Octet-stream');
header ('Content-Disposition: attachment; filename="data.csv"');
echo $row['data'];
mysql_free_result($result);
exit();
}
//-------------------------------------------------------------------------------------------------------------------------
// Otherwise, view data mode
else {
$sql = "SELECT signal_id,lat,lon,alt,sampling,version,comment,created_date,local_datetime FROM signals WHERE device_id='".$device_id."' ORDER BY created_date DESC LIMIT 100";
$result = mysql_query($sql, $link);
$dataTable = '<table width=300>';
$dataTable .='<tr><th>Date</th><th>Lat</th><th>Lon</th><th>Alt</th><th>Data</th></tr>';
while ($row = mysql_fetch_assoc($result)) {
$dataTable .='<tr>';
$dataTable .='<td>'.$row['local_datetime'].'</td>';
$dataTable .='<td>'.$row['lat'].'</td>';
$dataTable .='<td>'.$row['lon'].'</td>';
$dataTable .='<td>'.$row['alt'].'</td>';
$dataTable .='<td><a href="./?signal_id='.$row['signal_id'].'&action=download">Download</a></td>';
$dataTable .='</tr>';
}
$dataTable .= '</table>';
mysql_free_result($result);
}
?>
<html>
<head>
<title>View Data</title>
<meta name="viewport" content="initial-scale=1.00" />
<meta name="viewport" content="width=320" />
<style>
body{
font-family:arial;
background: #d2edfb;
font-size:11px;
}
.highlight td{
font-weight:bold;
color:red;
}
table
{
font-size:11px;
}
th
{
background: #ccc;
text-align:left;
}
</style>
</head>
<body>
<?=$dataTable?>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment