prepare("SELECT * FROM `devices`");
$devices->execute();
//List Users
$users = $dbh->prepare("SELECT * FROM `users`");
$users->execute();
//List wol
$wollist = $dbh->prepare("SELECT * FROM `wol`");
$wollist->execute();
function wollistings ()
{
GLOBAL $dbh;
echo '
';
//List wol
$wollist = $dbh->prepare("SELECT * FROM `wol`");
$wollist->execute();
$wolcount = $wollist->rowCount();
if ($wolcount < 1) {
// No devices
} else {
foreach ($wollist as $wol ){
echo ''.$wol['computer'].' ';
}
}
echo '
';
}
function updatestate ($dev,$state)
{
// update database with state
GLOBAL $dbh;
$updatestate = $dbh->prepare("UPDATE `devices` SET `state` = :state WHERE `name` = :name");
$updatestate ->bindParam(':name', $dev);
$updatestate ->bindParam(':state', $state);
$updatestate->execute();
}
function commandit ($brand,$remote,$channel,$state)
{
// execute command
passthru ('sudo pihat --brand='.$brand.' --repeats=15 --id='.$remote.' --channel='.$channel.' --state='.$state.'');
}
function insertsms ($user,$message)
{
GLOBAL $dbh;
$insertsms = $dbh->prepare ("INSERT INTO smshistory (user,command) VALUES (:user,:message)");
$insertsms->bindParam(':user', $user);
$insertsms->bindParam(':message', $message);
$insertsms->execute();
}
function updatehistory ($command,$user)
{
GLOBAL $dbh;
$updatehistory = $dbh->prepare("UPDATE `smshistory` SET `completed` = 1 WHERE `command` = :command AND `user` = :user ");
$updatehistory->bindParam(':command', $command);
$updatehistory->bindParam(':user', $user);
$updatehistory->execute();
}
function wol ($computer)
{
GLOBAL $dbh;
$wol = $dbh->prepare("SELECT * FROM `wol` WHERE computer = :computer");
$wol->bindParam(':computer', $computer);
$wol->execute();
$count = $wol->rowCount();
if ($count == "0") {
echo "No Computer with that name found";
exit();
}
$wol2 = $wol->fetch(PDO::FETCH_ASSOC);
$mac = $wol2['mac'];
passthru ('wakeonlan '.$mac.'');
echo "Wake on Lan Command Sent";
}
function add_device ($devicename,$devicebrand,$deviceremoteid,$devicechannel) {
GLOBAL $dbh;
include('config.php');
$checkdev = $dbh->prepare("SELECT * FROM `devices` WHERE (`channel` = :channel OR `name` = :name)");
$checkdev->bindParam(':channel', $devicechannel);
$checkdev->bindParam(':name', $devicename);
$checkdev->execute();
$count = $checkdev->rowCount();
if ($count > 0) {
echo "Device with the same name or channel number already exists";
} else {
$insertdev = $dbh->prepare("INSERT INTO `devices` (`name`, `brand`, `remoteid`, `channel`, `state`) VALUES (:name, :brand, :remote, :channel, 0)");
$insertdev->bindParam(':name', $devicename);
$insertdev->bindParam(':brand', $devicebrand);
$insertdev->bindParam(':remote', $deviceremoteid);
$insertdev->bindParam(':channel', $devicechannel);
$insertdev->execute();
echo "
Device Added to Database
";
}
}
function addmac ($name,$mac) {
GLOBAL $dbh;
$checkmac = $dbh->prepare("SELECT * FROM `wol` WHERE (`computer` = :computer OR `mac` = :mac)");
$checkmac->bindParam(':computer', $name);
$checkmac->bindParam(':mac', $mac);
$checkmac->execute();
$countmac = $checkmac->rowCount();
if ($countmac > 0) {
echo "Computer name or mac already in database";
} else {
$insertmac= $dbh->prepare("INSERT INTO `wol` (`computer`, `mac`) VALUES (:computer, :mac)");
$insertmac->bindParam(':computer', $name);
$insertmac->bindParam(':mac', $mac);
$insertmac->execute();
echo "
WOL Added to Database
";
}
}
function adduser ($name,$number) {
GLOBAL $dbh;
$checkuser = $dbh->prepare("SELECT * FROM `users` WHERE (`number` = :number OR `name` = :name)");
$checkuser->bindParam(':name', $name);
$checkuser->bindParam(':number', $number);
$checkuser->execute();
$countuser = $checkuser->rowCount();
if ($countuser > "0") {
echo "User or Number already in database";
} else {
$insertuser= $dbh->prepare("INSERT INTO `users` (`name`, `number`) VALUES (:name, :number)");
$insertuser->bindParam(':name', $name);
$insertuser->bindParam(':number', $number);
$insertuser->execute();
echo "
User Added to Database
";
}
}
function uptime ()
{
$data = shell_exec('uptime');
$uptime = explode(' up ', $data);
$uptime = explode(',', $uptime[1]);
$uptime = $uptime[0];
echo ('Current server uptime: '.$uptime.'
');
}
function removeuser ($name) {
GLOBAL $dbh;
GLOBAL $configfile;
include($configfile);
$remuser = $dbh->prepare("DELETE FROM `users` WHERE `name` = :name");
$remuser->bindParam(':name', $name);
$remuser->execute();
echo "User Removed";
}
function removewol ($comp) {
GLOBAL $dbh;
GLOBAL $configfile;
include($configfile);
$remwol = $dbh->prepare("DELETE FROM `wol` WHERE `computer` = :computer ");
$remwol->bindParam(':computer', $comp);
$remwol->execute();
echo "Wol Removed";
}
function removedevice ($device) {
GLOBAL $dbh;
GLOBAL $configfile;
include($configfile);
$remdev = $dbh->prepare("DELETE FROM `devices` WHERE `name` = :name ");
$remdev->bindParam(':name', $device);
$remdev->execute();
echo "".$device." has been removed.";
}
function refreshpage ($url) {
header('Location: '.$url.'');
}
function allon() {
GLOBAL $devices;
foreach ($devices as $device){
$dev = $device['name'];
$brand = $device['brand'];
$remote = $device['remoteid'];
$channel = $device['channel'];
$state = "1";
// execute command and update the state in DB
commandit ($brand,$remote,$channel,$state);
updatestate ($dev,$state);
}
}
function alloff() {
GLOBAL $devices;
foreach ($devices as $device){
$dev = $device['name'];
$brand = $device['brand'];
$remote = $device['remoteid'];
$channel = $device['channel'];
$state = "0";
// execute command and update the state in DB
commandit ($brand,$remote,$channel,$state);
updatestate ($dev,$state);
}
}
?>