\n"; } else { $mesg = "DEBUG: " . $val . "
\n"; } file_put_contents("/tmp/zoni_register.log", $mesg, FILE_APPEND); } } function get_netmask ($cidr) { $val = $cidr; $count = 4; $mask = ""; $oct = ""; while ($val > 0) { if ($val >= 8){ $mask = $mask . "255."; $val -= 8; $count -= 1; } if ($val < 8 ){ for ($i=0;$i<8;$i++){ if ($i < $val){ $oct = $oct . "1"; }else { $oct = $oct . "0"; } } $lastoct = base_convert($oct, 2, 10); $val -= 8; $count -= 1; $mask = $mask . $lastoct; } if ($val <= 0){ for ($i=0;$i<$count;$i++){ $mask = $mask . ".0"; } } } return $mask; } function createPassword($length=8) { $pass = NULL; for($i=0; $i<$length; $i++) { $char = chr(rand(48,122)); while (!preg_match("/[a-zA-Z0-9]/", $char)){ $char = chr(rand(48,122)); } $pass .= $char; } return $pass; } class db_connection { var $conn; var $status; var $mydb; var $table_headings; var $num_rows; var $num_fields; var $field_names; var $results_array; var $me; function db_connection ($HOST, $DBUSER, $password=NULL, $dbinst) { $this->conn = mysql_connect ($HOST, $DBUSER, $password); if (!$this->conn) { die("Could not connect to $HOST as $DBUSER; " . mysql_error()); } $this->mydb = mysql_select_db ($dbinst, $this->conn); if (!$this->mydb) { die ("Can't use $dbinst: " . mysql_error()); } if (isset($_SESSION['user_id'])) { $this->me = $_SESSION['user_id']; } return $this->conn; } function close () { mysql_close ($this->conn); } // will return the results of the query // if index is set to 1, array key will be the field names function query ($query, $index=NULL) { #$result = mysql_query($query) or die('Query failed: ' . mysql_error()); $result = $this->run_query($query); if (!(is_bool($result))) { $this->num_fields = $this->set_num_fields($result); $this->num_rows = $this->set_num_rows($result); $this->field_names = $this->set_field_names($result); $this->results_array = array(); while ($row = mysql_fetch_array($result)) { $tmp = array(); // number index if ($index == 0) { for ($i = 0; $i < $this->get_num_fields($result); $i++) { array_push ($tmp, $row[$i]); } array_push($this->results_array, $tmp); // print field labels as array index } else { for ($i = 0; $i < $this->get_num_fields($result); $i++) { $val = $this->field_names[$i]; $tmp[$val] = $row[$i]; } array_push($this->results_array, $tmp); } } } if ($this->get_num_rows($result) == 0) { return -1; } else { return $this->results_array; } } function set_num_fields ($result) { return mysql_num_fields($result); } function get_num_fields () { return $this->num_fields; } function set_num_rows ($result) { return mysql_num_rows($result); } function get_num_rows () { return $this->num_rows; } function set_field_names ($result) { $this->field_names = array(); for ($i = 0; $i < $this->num_fields; $i++) { $var = mysql_field_name($result, $i); array_push ($this->field_names, $var); } return $this->field_names; } function get_field_names () { return $this->field_names; } function get_results () { return $this->results_array; } function system_exists ($mac) { $query = "select * from sysinfo where mac_addr = '$mac'"; $result = mysql_query ($query) or die ('Check dup query failed: ' . mysql_error()); $val = $this->set_num_rows ($result); if ($val > 0) { return 1; } else { return 0; } } function get_ip_addr($mac) { $query = "select ip_addr from sysinfo where mac_addr = '$mac'"; $val = $this->query($query, 1); return $val[0]['ip_addr']; } function get_location ($sys_id) { # location is not defined in here so get it from db $query = "select location from sysinfo where sys_id = '$sys_id'"; $results = $this->query($query, 1); $location = $results[0]['location']; return $location; } function get_sys_id($mac) { $query = "select sys_id from sysinfo where mac_addr = '$mac'"; $val = $this->query($query, 1); return $val[0]['sys_id']; } function check_dup ($table, $colname, $value, $colname2=NULL, $value2=NULL) { $cond = "where $colname = '$value'"; if ($colname2 != NULL && $value2 != NULL) { $cond .= " and $colname2 = '$value2'"; } $query = "select * from $table $cond"; $result = mysql_query($query) or die('Check dup query failed: ' . mysql_error()); $val = $this->set_num_rows ($result); return $val; } function add_system ($G, $u) { $val = $this->check_dup ("users", "username", $u['username']); if ($val < 1) { $user_info = $this->create_new_user($u); $msg = "SUCCESS
$user_info"; } else { $msg = "A username by this name "; $msg .= "({$u['username']}) already exists
"; } return $msg; } /** * This function returns all info about a system * * @param $G Global var * @return Returns an array of the contents indexed by mac address. */ function get_system_summary () { $query = "select s.mac_addr, s.location, "; $query .= "s.num_procs, s.num_cores, s.mem_total, s.clock_speed, "; $query .= "s.sys_vendor, s.sys_model, s.proc_vendor, s.proc_model, "; #$query .= "s.proc_cache, s.dell_tag, s.cpu_flags, s.bios_rev "; $query .= "s.proc_cache, s.dell_tag, s.bios_rev "; // $query .= "d.disk_size "; #$query .= "from sysinfo s, diskinfo d "; $query .= "from sysinfo s"; //$query .= "where s.mac_addr = d.mac_addr"; $results = $this->query($query, 1); return $results; } /** * This function returns all images * * @return Returns an array of the contents */ function get_images () { $image_array = array(); $query = "select image_name from imageinfo"; $val = $this->query($query, 1); for ($i = 0; $i < count($val); $i++) { foreach ($val[$i] as $key => $image) { array_push($image_array, $image); } } return $image_array; } function get_something ($fieldname, $table, $crit_field, $crit) { $query = "select $fieldname from $table "; $query .= "where $crit_field = '$crit'"; $val = $this->query($query, 1); return $val[0]["$fieldname"]; } function get_mac_addr_from_hostname ($node) { $query = "select mac_addr from sysinfo "; $query .= "where location = '$node' "; $val = $this->query($query, 1); return $val[0]['mac_addr']; } function get_hostname_from_mac_addr($mac_addr) { $query = "select location from hostinfo "; $query .= "where mac_addr = '$mac_addr' "; $val = $this->query($query, 1); if ($this->num_rows == 1) { return $val[0]['location']; } else { $query = "select location from "; $query .= "where mac_addr = '$mac_addr' "; $val = $this->query($query, 1); return $val[0]['location']; } } function get_image_id_from_image_name ($name) { $query = "select image_id from imageinfo "; $query .= "where image_name = '$name'"; $val = $this->query($query, 1); return $val[0]['image_id']; } /** * This function returns image from mac_addr * * @return Returns an array of the contents */ function get_current_image($mac_addr) { #$mac_addr = $this->get_mac_addr_from_hostname ($node); $query = "select image_name from "; $query .= "imageinfo i, imagemap j "; $query .= "where i.image_id = j.image_id "; $query .= "and j.mac_addr = '$mac_addr'"; $val = $this->query($query, 1); return $val[0]['image_name']; } /** * This function returns all projects * * @return Returns an array of the contents */ function get_projects () { $my_array = array(); $query = "select project_id, project_name, description from projectinfo"; $val = $this->query($query, 1); if ($this->get_num_rows() == 0) { return 0; } # for ($i = 0; $i < count($val); $i++) { # foreach ($val[$i] as $key => $value) { # array_push($my_array, $value); # } # } return $val; } /** * This function adds a projects * * @return Returns string message * @param $project_name * @param $description desc of project */ function add_project ($project_name, $description) { $val = $this->check_dup ("projectinfo", "project_name", $project_name); if ($val < 1) { $query = "insert into projectinfo "; $query .= "(project_name, description) "; $query .= "values ('$project_name', '$description')"; $result = mysql_query($query) or die('insert into projectinfo query failed: ' . mysql_error()); return "Entry added to database"; } else { return "Project $project_name exists"; } } /* * This function deletes a projects * */ function del_project($id) { $query = "delete from projectinfo "; $query .= "where project_id = '$id' "; $result = mysql_query($query) or die('Deleting projectinfo query failed: ' . mysql_error()); } /* * This function gets all users * * @return Returns array of users */ function get_users() { $my_array = array(); $query = "select * from userinfo"; $val = $this->query($query, 1); if ($this->get_num_rows() == 0) { return 0; } return $val; } /* * This function adds a user * * @return Returns string message */ function add_user($surname, $fname, $user_name, $position, $affil, $notes) { $val = $this->check_dup ("userinfo", "user_name", $user_name); if ($val < 1) { $query = "insert into userinfo "; $query .= "(surname, fname, user_name, position, "; $query .= "affiliation, notes ) "; $query .= "values ('$surname', '$fname', '$user_name', "; $query .= "'$position', '$affil', '$notes')"; $result = mysql_query($query) or die('insert into userinfo query failed: ' . mysql_error()); return "Entry added to database"; } else { return "User $fname $surname exists"; } } /* * This function deletes a user * * @return */ function del_user($user_id) { $query = "delete from userinfo "; $query .= "where user_id = '$user_id' "; $result = mysql_query($query) or die('Deleting userinfo query failed: ' . mysql_error()); } /** * This runs a generic query * * @ return 0 on success */ function run_query($query) { $result = mysql_query($query) or die('Query failed: ' . mysql_error() . "\n$query"); return $result; } } ?>