Newer
Older
bathroom-plugin / php / status-update.php
<?php

include 'door-settings.php';

if (!isset($_REQUEST['door_id'])) die('Please send door id');

$id = intval($_REQUEST['door_id']);
if ($id < 1 || $id > NUM_DOORS) die('Invalid door id');

if (!isset($_REQUEST['status'])) die('Please send door status');

$status = intval($_REQUEST['status']);
if ($status != 0 && $status != 1) die ('Invalid status');

$verify = mt_rand();

$pub = file_get_contents("public$id.pem");
if ($pub === false) die("No public key found for door $id");

$request_file = "request$id";
$ip = $_SERVER['HTTP_X_REAL_IP'];

$time = time();

file_put_contents($request_file, "$ip\n$time\n$verify\n$status");

$ret = openssl_public_encrypt("$verify", $encrypted, $pub, OPENSSL_PKCS1_OAEP_PADDING);

if (!$ret) die("Encryption error: ". openssl_error_string());
echo htmlentities(base64_encode($encrypted));