Hallo Thomas,
mit einem Webserver können wir Daten des Temploggers in eine Database speichern und durch den Webserver können wir die gespeicherten Daten auch wieder zeigen.
Um dies zu machen brauchen wir eine Website mit Scripting-Möglichkeit und einen Speicher, bevorzügt wird eine database.
Zur Illustration untenstehend zwei php scripts, mit MySQL als Database:
Dieses Script benutzen wir um Datei hinzuzufügen.
Achtung: die Argumente sollten genauestens überprüft werden (mehr als hier im Beispeil) sodass böswillige Benutzung vermieden wird.
===add_temperatures.php===
Code:
<?php
// add_temperatures.php
// needs 6 arguments, separated by '&':
// argument 0 = 'password' (abcdef)
// argument 1 = $date
// argument 2 = $time
// argument 3 = $device
// argument 4 = $temperature
// get arguments
$args = explode ("&", $QUERY_STRING );
$nargs = count($args);
if ($nargs != 5)
{
die();
}
if ($args[0] != "abcdef")
{
die();
}
// decode arguments
$date = urldecode($args[1]) ;
$time = urldecode($args[2]) ;
$device = urldecode($args[3]);
$temperature = urldecode($args[4]);
// replace characters that could lead to sql query injection
$date = str_replace("'", " ", $date);
$time = str_replace("'", " ", $time);
$device = str_replace("'", " ", $device);
$temperature = str_replace("'", " ", $temperature);
// log it
$db = mysql_connect('localhost', 'user', 'password');
$result = mysql_select_db('user', $db);
//insert new data
$result = mysql_query("INSERT INTO temperature (logdate, logtime, device, temperature) VALUES ('$date', '$time', '$device', '$temperature' )", $db);
$result = mysql_close($db);
die();
?>
Mit diesem Script können wir den Inhalt anzeigen:
===show_temperatures.php===
Code:
<?php
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// always modified
header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header ("Pragma: no-cache"); // HTTP/1.0
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Current temperatures</title>
</head>
<body>
<h1>Current temperatures</h1>
<?
$db = mysql_connect('localhost', 'username', 'password'); // open database
$result = mysql_select_db('username', $db);
//execute a query
$result = mysql_query("SELECT logdate, logtime, device, temperature from temperatures ORDER BY device", $db);
// create html table from queried data
echo "<table border=\"1\">\n";
echo "<tr><th>Date</th><th>Time</th><th>device</th><th>temperature</th></tr>\n";
while ($row = mysql_fetch_array ($result))
{
echo "<tr><td>".$row[0]."</td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td>" ;
echo"</tr>\n";
}
echo "</table>";
$result = mysql_close($db);
?>
</body>
</html>
Zum Schluß möchten wir die Daten noch nach dem Webserver senden.
Erstellen Sie einen neuen Eintrag im Temperature Messenger in der http Sektion:
URL:
www.website.com/add_temperatures.php
method: get
message:
abcdef&&$date&&$time&&$id&&$T
Das Bericht enthält alle Argumente welche das Script braucht. Die Argumente werden getrennt durch &&.
Aus den Database daten kann wieder eine grafische Darstellung gemacht werden, hierfür bietet php verschiedene Möglichkeiten.
Weitere Info, sehe die Webserver-File in C:\AREXX auf Ihre Festplatte.
MfG,
Ihr AREXX Team