summaryrefslogtreecommitdiff
path: root/index.php.in
diff options
context:
space:
mode:
Diffstat (limited to 'index.php.in')
-rw-r--r--index.php.in87
1 files changed, 87 insertions, 0 deletions
diff --git a/index.php.in b/index.php.in
new file mode 100644
index 0000000..c3dc987
--- /dev/null
+++ b/index.php.in
@@ -0,0 +1,87 @@
+<?php
+
+$f = popen('#BINDIR#/lights-out get power', 'r');
+if ($f === false) {
+ print 'Cannot getpower status' . "\n";
+ die();
+}
+$power = trim(fgets($f));
+pclose($f);
+
+if ($power == '') {
+ print 'Cannot read gpio - is it installed?' . "\n";
+ die();
+}
+
+$f = popen('#BINDIR#/lights-out name', 'r');
+if ($f === false) {
+ print 'Error reading server name' . "\n";
+ die();
+}
+$server = trim(fgets($f));
+pclose($f);
+
+if ($server == '') {
+ print 'Empty server name in config' . "\n";
+ die();
+}
+
+if (array_key_exists('HTTPS', $_SERVER)
+&& ($_SERVER['HTTPS'] == 'on'))
+ $https = true;
+else
+ $https = false;
+
+function push_it() {
+ if (!array_key_exists('password', $_POST))
+ return;
+ $f = fopen('../password', 'r');
+ if ($f === false) {
+ print '<font color="ff0000">Cannot read password file</font><br>' . "\n";
+ return;
+ }
+ $saved_hash = trim(fgets($f));
+ fclose($f);
+ $entered_hash = hash('sha512', $_POST['password']);
+ if ($saved_hash != $entered_hash) {
+ print '<font color="ff0000">Wrong password: ' . $entered_hash . '</font><br>' . "\n";
+ return;
+ }
+ foreach ($_POST as $key => $dummy)
+ if (preg_match('/^push_([0-9]+)$/', $key, $duration))
+ break;
+ if (count($duration) != 2)
+ return;
+ $duration = $duration[1];
+ if (($duration > 0)
+ && ($duration < 300)) {
+ print 'pushing power button for ' . ($duration * 0.1) . ' seconds ... <br>' . "\n";
+ flush();
+ shell_exec('#BINDIR#/lights-out push power ' . ($duration * 0.1));
+ print '... done<br>' . "\n";
+ }
+}
+
+print '<html>' . "\n";
+print '<head>' . "\n";
+print '<title>fenster lights-out</title>' . "\n";
+if (array_key_exists('password', $_POST))
+ print '<meta http-equiv="refresh" content="1;/">' . "\n";
+print '</head>' . "\n";
+print '<body>' . "\n";
+print 'Fenster is currently ';
+if ($power == '0')
+ print '<font color="ff0000">off</font>';
+else
+ print '<font color="00ff00">on</font>';
+print '<br>' . "\n";
+if ($https) {
+ push_it();
+ print '<form action="" method="post">' . "\n";
+ print 'Passwort: <input name="password" type="password"><br>' . "\n";
+ print '<input type="submit" name="push_1" value="short power button push"><br>' . "\n";
+ print '<input type="submit" name="push_150" value="long power button push"><br>' . "\n";
+ print '</form>' . "\n";
+}
+print '</body>' . "\n";
+print '</html>' . "\n";