Changed database access to PDO using prepared statements

This commit is contained in:
2023-02-22 10:50:24 +01:00
parent a4ecd1bff7
commit 7c300e0a8f
132 changed files with 5364 additions and 6091 deletions

View File

@@ -19,45 +19,42 @@ $smarty->assign("scripts",'changetext.js');
include("header.php");
// subnet
$query = "SELECT
s.subnet_address,
s.subnet_mask,
s.subnet_dhcp_start,
s.subnet_dhcp_end,
s.subnet_info,
s.protocol_version,
s.ntp_server,
COUNT(node.subnet_id) AS node_counter
FROM
subnet AS s LEFT JOIN node USING (subnet_id)
WHERE
s.subnet_id=" . $subnet_id . "
GROUP BY
s.subnet_id";
$sql = "SELECT
s.subnet_id AS id,
s.subnet_address AS address,
s.subnet_mask AS mask,
s.subnet_dhcp_start AS dhcp_start,
s.subnet_dhcp_end AS dhcp_end,
s.subnet_info AS info,
s.protocol_version AS proto_vers,
s.ntp_server,
COUNT(node.subnet_id) AS node_counter
FROM
subnet AS s LEFT JOIN node USING (subnet_id)
WHERE
s.subnet_id=?
GROUP BY
s.subnet_id";
$sth = $dbh->prepare($sql);
$sth->execute([$subnet_id]);
$subnet = $db->db_select($query);
$subnet = $sth->fetch(PDO::FETCH_OBJ);
$smarty->assign("subnet", $subnet);
// set needed variables
$subnet_address = $subnet[0]['subnet_address'];
$subnet_mask = $subnet[0]['subnet_mask'];
$subnet_dhcpstart = $subnet[0]['subnet_dhcp_start'];
$subnet_dhcpend = $subnet[0]['subnet_dhcp_end'];
$subnet_proto_vers = $subnet[0]['protocol_version'];
$subnet_ntp_server = $subnet[0]['ntp_server'];
$subnet_address = $subnet->address;
$subnet_mask = $subnet->mask;
$subnet_dhcpstart = $subnet->dhcp_start;
$subnet_dhcpend = $subnet->dhcp_end;
$subnet_proto_vers = $subnet->protocol_version;
$subnet_ntp_server = $subnet->ntp_server;
// set counters
$host_counter = pow(2,(32-$subnet_mask));
$node_counter = $subnet[0]['node_counter'];
$node_counter = $subnet->node_counter;
$subnet_usedpercentage = round((($node_counter/($host_counter-2))*100), 1);
$smarty->assign("subnet_id", $subnet_id);
$smarty->assign("subnet_address", $subnet_address);
$smarty->assign("subnet_mask", $subnet_mask);
$smarty->assign("subnet_dhcpstart", $subnet_dhcpstart);
$smarty->assign("subnet_dhcpend", $subnet_dhcpend);
$smarty->assign("subnet_info", nl2br($subnet[0]['subnet_info']));
$smarty->assign("subnet_proto_vers", $subnet_proto_vers);
$smarty->assign("subnet_ntp_server", $subnet_ntp_server);
$smarty->assign("node_counter", $node_counter);
$smarty->assign("subnet_usedpercentage", $subnet_usedpercentage);
$smarty->assign("config_color_unused", $config_color_unused);
@@ -67,25 +64,25 @@ $smarty->assign("free_counter", (($host_counter-2)-$node_counter));
// subnet
// split up the range
$iprange = explode('.', $subnet_address);
$iprange = explode('.', $subnet->address);
$iprange1 = $iprange[0];
$iprange2 = $iprange[1];
$iprange3 = $iprange[2];
$iprange4 = $iprange[3];
// create empty subnet-array
$subnet = array();
$subnetdata = array();
// determine range (Class A/B/C)
if ($subnet_mask>=24) {
if ($subnet_mask >= 24) {
// Class C
// fill subnet-array with addresses we want to see
for($i=0;$i<$host_counter;$i++) {
for($i=0; $i<$host_counter; $i++) {
// build ip
$ip = $iprange1 . '.' . $iprange2 . '.' . $iprange3 . '.' . ($iprange4+$i);
// fill subnet-array
$subnet[$ip] = array();
$subnetdata[$ip] = array();
}
// calculate broadcast address
@@ -121,7 +118,7 @@ if ($subnet_mask>=24) {
$ip = $iprange1 . '.' . $iprange2 . '.' . $page2 . '.' . $i;
// fill subnet-array
$subnet[$ip] = array();
$subnetdata[$ip] = array();
}
// calculate broadcast address
@@ -162,18 +159,18 @@ if ($subnet_mask>=24) {
} else {
// Class A
// which part do we want to see?
if((empty($page)) ? $page=$subnet_address : $page=$page);
if ((empty($page)) ? $page = $subnet_address : $page = $page);
$page = explode('.', $page);
$page2 = $page[1];
$page3 = $page[2];
// fill subnet-array with addresses we want to see
for($i=0;$i<256;$i++) {
for($i=0; $i<256; $i++) {
// build ip
$ip = $iprange1 . '.' . $page2 . '.' . $page3 . '.' . $i;
// fill subnet-array
$subnet[$ip] = array();
$subnetdata[$ip] = array();
}
// calculate broadcast address
@@ -192,7 +189,7 @@ if ($subnet_mask>=24) {
$smarty->assign("iprange4", $iprange4);
// set select box
if($i==$page2) {
if($i == $page2) {
$smarty->assign("row1_selected", "selected");
} else {
@@ -204,7 +201,7 @@ if ($subnet_mask>=24) {
}
// loop addresses in range 3
for($i=0;$i<256;$i++) {
for($i=0; $i<256; $i++) {
// send to tpl
$smarty->assign("iprange1", $iprange1);
$smarty->assign("iprange2", $page2);
@@ -238,7 +235,7 @@ if ($subnet_mask>=24) {
}
// get nodes for this subnetview and implement the values into the array
$query = "SELECT
$sql = "SELECT
asset.asset_name,
assetclassgroup.assetclassgroup_color,
node.node_id,
@@ -249,34 +246,38 @@ $query = "SELECT
assetclassgroup,
node
WHERE
node.node_ip IN ('".implode("','",array_keys($subnet))."')
AND node.subnet_id='$subnet_id'
node.node_ip IN ('".implode("','",array_keys($subnetdata))."')
AND node.subnet_id=?
AND asset.asset_id=node.asset_id
AND assetclass.assetclass_id=asset.assetclass_id
AND assetclassgroup.assetclassgroup_id=assetclass.assetclassgroup_id";
$nodes = $db->db_select($query);
$sth = $dbh->prepare($sql);
$sth->execute([$subnet_id]);
$smarty->assign("locations", $sth->fetchAll());
$nodes = $sth->fetchAll();
$node_counter = count($nodes);
if ($node_counter>0) {
if ($node_counter > 0) {
// get objects
foreach($nodes AS $node) {
foreach ($nodes AS $node) {
// add node-values to ip in subnet-array
$subnet[$node['node_ip']] = $node;
$subnetdata[$node['node_ip']] = $node;
}
}
// replace ip's in subnet-array (if necessary)
// check for subnet address
if(array_key_exists($subnet_address, $subnet)) {
if (array_key_exists($subnet_address, $subnet)) {
// replace
$subnet[$subnet_address] = array("subnet_address");
$subnetdata[$subnet_address] = array("subnet_address");
}
// check for broadcast address
if(array_key_exists($broadcast_address, $subnet)) {
if (array_key_exists($broadcast_address, $subnet)) {
// replace
$subnet[$broadcast_address] = array("broadcast_address");
$subnetdata[$broadcast_address] = array("broadcast_address");
}
$dhcpstart = 0;
@@ -289,13 +290,13 @@ if ($subnet_dhcpstart && $subnet_dhcpend) {
// start counter
// $i=1;
// loop subnet-array
foreach ($subnet AS $node_ip => $node) {
foreach ($subnetdata AS $node_ip => $node) {
// make new line?
// if(($i%$_SESSION['suser_imagecount']==0 && $i!=$nodes_displayed) ? $tr="</tr><tr>" : $tr="");
// check if node-ip in DHCP-area
$subnet[$node_ip]["dynamic"] = false;
// check if node-ip in DHCP-area
$subnetdata[$node_ip]["dynamic"] = false;
if ($dhcpstart > 0) {
$ipval = ip2long($node_ip);
if (($ipval >= $dhcpstart) and ($ipval <= $dhcpend)) {
@@ -306,28 +307,28 @@ foreach ($subnet AS $node_ip => $node) {
// check node
if (empty($node)) {
// empty node to tpl
$subnet[$node_ip]["url"] = 'assigniptonode.php?subnet_id=' . $subnet_id . '&amp;node_ip='. $node_ip;
$subnet[$node_ip]["remotetext"] = $node_ip;
if ($subnet[$node_ip]["dynamic"]) {
$subnet[$node_ip]["assetclassgroup_color"] = $config_color_dynamic;
$subnetdata[$node_ip]["url"] = 'assigniptonode.php?subnet_id=' . $subnet_id . '&amp;node_ip='. $node_ip;
$subnetdata[$node_ip]["remotetext"] = $node_ip;
if ($subnetdata[$node_ip]["dynamic"]) {
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_dynamic;
} else {
$subnet[$node_ip]["assetclassgroup_color"] = $config_color_unused;
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_unused;
}
} else if (array_key_exists(0, $node) && $node[0]=="subnet_address") {
// subnet address to tpl
$subnet[$node_ip]["url"] = "";
$subnet[$node_ip]["remotetext"] = $node_ip . '&nbsp;' . $lang['lang_subnet_subnetaddress'];
$subnet[$node_ip]["assetclassgroup_color"] = $config_color_blocked;
$subnetdata[$node_ip]["url"] = "";
$subnetdata[$node_ip]["remotetext"] = $node_ip . '&nbsp;' . $lang['lang_subnet_subnetaddress'];
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_blocked;
} else if (array_key_exists(0, $node) && $node[0]=="broadcast_address") {
// broadcast address to tpl
$subnet[$node_ip]["url"] = "";
$subnet[$node_ip]["remotetext"] = $node_ip . '&nbsp;' . $lang['lang_subnet_broadcastaddress'];
$subnet[$node_ip]["assetclassgroup_color"] = $config_color_blocked;
$subnetdata[$node_ip]["url"] = "";
$subnetdata[$node_ip]["remotetext"] = $node_ip . '&nbsp;' . $lang['lang_subnet_broadcastaddress'];
$subnetdata[$node_ip]["assetclassgroup_color"] = $config_color_blocked;
} else {
// node to tpl
$subnet[$node_ip]["url"] = 'nodeview.php?node_id=' . $node['node_id'];
$subnet[$node_ip]["remotetext"] = $node_ip . '&nbsp;' . $node['asset_name'];
$subnet[$node_ip]["assetclassgroup_color"] = $node['assetclassgroup_color'];
$subnetdata[$node_ip]["url"] = 'nodeview.php?node_id=' . $node['node_id'];
$subnetdata[$node_ip]["remotetext"] = $node_ip . '&nbsp;' . $node['asset_name'];
$subnetdata[$node_ip]["assetclassgroup_color"] = $node['assetclassgroup_color'];
}
// update counter
@@ -335,43 +336,30 @@ foreach ($subnet AS $node_ip => $node) {
} // foreach
$smarty->assign("subnet", $subnet);
$smarty->assign("subnetdata", $subnetdata);
$smarty->assign("imagewrap", $_SESSION['suser_imagecount']);
// vlan
$query = "SELECT
vlan.vlan_id AS vlan_id,
vlan.vlan_name AS vlan_name,
vlan.vlan_number AS vlan_number
FROM
subnetvlan,
vlan
WHERE
subnetvlan.subnet_id=" . $subnet_id . "
AND vlan.vlan_id=subnetvlan.vlan_id
ORDER BY
vlan.vlan_name";
// vlans
$sql = "SELECT v.vlan_id AS id, v.vlan_name AS name,
v.vlan_number AS number
FROM subnetvlan AS s JOIN vlan AS v USING (vlan_id)
WHERE s.subnet_id=?
ORDER BY v.vlan_name";
$sth = $dbh->prepare($sql);
$sth->execute([$subnet_id]);
$smarty->assign("vlans", $sth->fetchAll());
// run query
$vlans = $db->db_select($query);
$smarty->assign("vlans", $vlans);
// locations
$sql = "SELECT l.location_id, l.location_name
FROM location AS l LEFT JOIN subnetlocation AS s USING (location_id)
WHERE s.subnet_id=?
ORDER BY l.location_name";
$sth = $dbh->prepare($sql);
$sth->execute([$subnet_id]);
$smarty->assign("locations", $sth->fetchAll());
// location
$query = "SELECT
l.location_id,
l.location_name
FROM
location AS l LEFT JOIN subnetlocation AS s USING (location_id)
WHERE
s.subnet_id=". $subnet_id . "
ORDER BY
l.location_name";
$locations = $db->db_select($query);
$smarty->assign("locations", $locations);
// assetclassgroup
$query = "SELECT
// assetclassgroups
$sql = "SELECT
assetclassgroup_id AS id,
assetclassgroup_name AS name,
assetclassgroup_color AS color,
@@ -381,13 +369,12 @@ $query = "SELECT
LEFT JOIN asset USING (asset_id)
LEFT JOIN assetclass USING (assetclass_id)
LEFT JOIN assetclassgroup USING (assetclassgroup_id)
WHERE subnet_id=" . $subnet_id . "
WHERE subnet_id=?
GROUP BY assetclass_id
ORDER BY counter DESC";
// run query
$assetclassgroups = $db->db_select($query);
$smarty->assign("assetclassgroups", $assetclassgroups);
$sth = $dbh->prepare($sql);
$sth->execute([$subnet_id]);
$smarty->assign("assetclassgroups", $sth->fetchAll());
$smarty->display("subnetview.tpl");