software-admin-panel/include/functions.php

153 lines
4.2 KiB
PHP
Raw Normal View History

2018-07-20 18:33:59 -05:00
<?php
function clean($db, $data) {
return get_magic_quotes_gpc() ? $data : $db->real_escape_string($data);
}
function check_login($username, $password) {
global $db;
if( $result = $db->query("SELECT id FROM `users` WHERE `username` = '$username' AND `password` = MD5('$password');")) {
if($row = $result->fetch_assoc()) {
$result->close();
return $row;
}
}
return FALSE;
}
function update_program($tmp_file = NULL, $id = 0) {
/*
global $db;
if($stmt = $db->prepare("UPDATE `programs` SET `latest_executable` = ?, `last_updated` = ? WHERE `id` = ?;")) {
$null = NULL;
$time = time();
$stmt->bind_param("bii", $null, $time, $id);
if($fp = fopen($tmp_file, 'r')) {
while (!feof($fp)) {
$stmt->send_long_data(0, fread($fp, 8192));
}
fclose($fp);
}
$stmt->execute();
$stmt->close();
}
*/
//@move_uploaded_file($tmp_file, '.\\update\\'.get_program_filename($id));
if($fp = @fopen($tmp_file, 'r')) {
$program_file = get_program_filename($id);
if($zp = @gzopen('./update/'.$program_file, 'wb9')) {
while (!@feof($fp)) {
$read_bytes = fread($fp, 8192);
@gzwrite($zp, $read_bytes, strlen($read_bytes));
}
@gzclose($zp);
}
@fclose($fp);
}
}
function get_access_list($user_id = 0) {
global $db;
$access_list = array();
if( $result = $db->query("SELECT `permissions`.`id` AS `permissions_id`, `permissions`.`user_id`, `permissions`.`program_id`, `permissions`.`expiration_time`, `users`.`username`, `users`.`id`, `programs`.`name` FROM `permissions`
LEFT JOIN `users` ON `users`.`id` = `permissions`.`user_id`
LEFT JOIN `programs` ON `programs`.`id` = `permissions`.`program_id`
WHERE `permissions`.`user_id` = $user_id;")) {
while($row = $result->fetch_assoc()) {
$access_list[] = $row;
}
$result->close();
}
return $access_list;
}
function get_program($db, $program_id = 0) {
$data = '';
if( $result = $db->query("SELECT latest_executable FROM `programs` WHERE `id` = $program_id;")) {
if($row = $result->fetch_assoc()) {
$data = $row['latest_executable'];
$result->close();
}
}
return $data;
}
function fetch_program_list() {
global $db;
$program_list = array(0 => 'None');
if( $result = $db->query("SELECT `id`, `name` FROM `programs`;")) {
while($row = $result->fetch_assoc()) {
$program_list[$row['id']] = $row['name'];
}
}
return $program_list;
}
function fetch_partial_user($id = 0) {
global $db;
if($result = $db->query("SELECT `id`, `username`, `active`, `admin` FROM `users` WHERE `id` = $id;")) {
if($user = $result->fetch_assoc()) {
return $user;
}
}
return FALSE;
}
function fetch_permission($pid = 0) {
global $db;
if($result = $db->query("SELECT `permissions`.*, `users`.`id`, `users`.`username` FROM `permissions`".
" LEFT JOIN `users` ON `users`.`id` = `permissions`.`user_id` WHERE `permissions`.`id` = $pid;")) {
if($perm = $result->fetch_assoc()) {
return $perm;
}
}
return FALSE;
}
function get_program_filename($program_id = 0) {
return strtoupper(substr(md5('program'.$program_id), 0, 16)).'.GZ';
}
function display_error_page($error_title = '', $error_message = '') {
global $smarty;
$smarty->assign('error_title', $error_title);
$smarty->assign('error_message', $error_message);
$smarty->display('error.tpl');
exit;
}
function set_login_cookies($username, $password, $save_password = FALSE) {
$expires = time() + ($save_password ? 31536000 : 10800);
setcookie("username", $username, $expires);
setcookie("password", $password, $expires);
setcookie("authenticated", '1', $expires);
}
function clear_login_cookies() {
$expires = time() - 3600;
setcookie("username", '', $expires);
setcookie("password", '', $expires);
setcookie("authenticated", '', $expires);
header("Location: index.php");
}
function qfetch($sql, $db) {
$data = NULL;
if($result = $db->query($sql)) {
if($row = $result->fetch_assoc())
$data = $row;
$result->free();
}
return $data;
}
function validate_username($username) {
if (strlen($username) < 3 || strlen($username) > 18) {
return FALSE;
}
if (preg_match("/[^A-Za-z0-9 ]/", $username)) {
return FALSE;
}
return TRUE;
}
?>