153 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			153 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
| 
								 | 
							
								<?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;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								?>
							 |