&1', 'r'); if ($f === false) { print 'Cannot access gpio' . "\n"; die(); } $l = trim(fgets($f)); pclose($f); if ($l == '') { print 'Cannot read gpio - is it installed?' . "\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 'Cannot read password file
' . "\n"; return; } $saved_hash = trim(fgets($f)); fclose($f); $entered_hash = $_POST['password']; for ($i=0; $i<1000; $i++) $entered_hash = hash('sha512', $entered_hash . $i . $_POST['password']); if ($saved_hash != $entered_hash) { print 'Wrong password: ' . $entered_hash . '
' . "\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 for ' . ($duration * 0.1) . ' seconds ...
' . "\n"; shell_exec('/usr/bin/gpio write 3 1'); flush(); usleep(100000 * $duration); shell_exec('/usr/bin/gpio write 3 0'); print '... done
' . "\n"; } } print '' . "\n"; print '' . "\n"; print 'fenster lights-out' . "\n"; if (array_key_exists('password', $_POST)) print '' . "\n"; print '' . "\n"; print '' . "\n"; print 'Fenster is currently '; if ($l == '1') print 'off'; else print 'on'; print '
' . "\n"; if ($https) { push_it(); print '
' . "\n"; print 'Passwort:
' . "\n"; print '
' . "\n"; print '
' . "\n"; print '
' . "\n"; } print '' . "\n"; print '' . "\n";