From 034f1550a91aab44ef20be71cc70d76479067548 Mon Sep 17 00:00:00 2001 From: Gary Allan <github@gallan.co.uk> Date: Fri, 24 Mar 2023 21:35:42 +0000 Subject: [PATCH] php8: Compatibility fixes. Fixes #3798 --- .../import-export/import-ipaddr-check.php | 12 ++++++--- app/subnets/addresses/print-address-table.php | 25 ++++++++++--------- app/subnets/subnet-details/subnet-details.php | 2 +- functions/php-excel-reader/excel_reader2.php | 12 ++++++--- 4 files changed, 31 insertions(+), 20 deletions(-) diff --git a/app/admin/import-export/import-ipaddr-check.php b/app/admin/import-export/import-ipaddr-check.php index 74506425..498fe71f 100644 --- a/app/admin/import-export/import-ipaddr-check.php +++ b/app/admin/import-export/import-ipaddr-check.php @@ -67,6 +67,10 @@ foreach ($all_sections as $section) { foreach ($section_subnets as $subnet) { $subnet = (array) $subnet; + # NULL vrfId? + if (!is_numeric($subnet['vrfId'])) + $subnet['vrfId'] = 0; + # ignore folders if($subnet['isFolder']) { continue; } @@ -109,7 +113,7 @@ if ($devices!==false) { } $rows = ""; -$counters = array(); +$counters = ["add" => 0, "edit" => 0, "skip" => 0, "error" => 0]; $ndata = array(); # store new addresses in a similar format with edata for easier processing # check the fields @@ -284,14 +288,16 @@ foreach ($data as &$cdata) { } } - $cdata['msg'].= $msg; + $cdata['msg'] = isset($cdata['msg']) ? $cdata['msg'] . $msg : $msg; $cdata['action'] = $action; $counters[$action]++; $cdata['subnet'] = $cdata['subnet']."/".$cdata['mask']; $rows.="<tr class='".$colors[$action]."'><td><i class='fa ".$icons[$action]."' rel='tooltip' data-placement='bottom' title='"._($msg)."'></i></td>"; - foreach ($expfields as $cfield) { $rows.= "<td>".$cdata[$cfield]."</td>"; } + foreach ($expfields as $cfield) { + $rows .= "<td>" . (isset($cdata[$cfield]) ? escape_input($cdata[$cfield]) : "") . "</td>"; + } $rows.= "<td>"._($cdata['msg'])."</td></tr>"; } diff --git a/app/subnets/addresses/print-address-table.php b/app/subnets/addresses/print-address-table.php index 4daf9521..b10b3398 100644 --- a/app/subnets/addresses/print-address-table.php +++ b/app/subnets/addresses/print-address-table.php @@ -123,7 +123,7 @@ $statuses = pf_explode(";", $User->settings->pingStatus); # Set $zone if(in_array('firewallAddressObject', $selected_ip_fields)) { # class - if(!is_object($Zones)) $Zones = new FirewallZones ($Database); + if (!isset($Zones)) $Zones = new FirewallZones($Database); $zone = $Zones->get_zone_subnet_info($subnet['id']); } else { $zone = false; @@ -448,17 +448,18 @@ else { else { print "<td class='narrow'></td>"; } } - # print device - if(in_array('switch', $selected_ip_fields) && $User->get_module_permissions ("devices")>=User::ACCESS_R) { - # get device details - $device = (array) $Tools->fetch_object("devices", "id", $addresses[$n]->switch); - # set rack - if ($User->settings->enableRACK=="1" && $User->get_module_permissions ("racks")>=User::ACCESS_RW) { - $rack = $device['rack']>0 ? "<i class='btn btn-default btn-xs fa fa-server showRackPopup' data-rackid='$device[rack]' data-deviceid='$device[id]'></i>" : ""; - print "<td class='hidden-xs hidden-sm hidden-md'>$rack <a href='".create_link("tools","devices",@$device['id'])."'>". @$device['hostname'] ."</a></td>"; - } - else { - print "<td class='hidden-xs hidden-sm hidden-md'> <a href='".create_link("tools","devices",@$device['id'])."'>". @$device['hostname'] ."</a></td>"; + # print device + if (in_array('switch', $selected_ip_fields) && $User->get_module_permissions("devices") >= User::ACCESS_R) { + # get device details + $device = $Tools->fetch_object("devices", "id", $addresses[$n]->switch); + if (is_object($device)) { + $rack = ""; + if ($User->settings->enableRACK == "1" && $User->get_module_permissions("racks") >= User::ACCESS_R && $device['rack'] > 0) { + $rack = "<i class='btn btn-default btn-xs fa fa-server showRackPopup' data-rackid='" . $device->rack . "' data-deviceid='" . $device->id . "'></i>"; + } + print "<td class='hidden-xs hidden-sm hidden-md'>$rack<a href='" . create_link("tools", "devices", $device->id) . "'>" . escape_input($device->hostname) . "</a></td>"; + } else { + print "<td class='hidden-xs hidden-sm hidden-md'></td>"; } } diff --git a/app/subnets/subnet-details/subnet-details.php b/app/subnets/subnet-details/subnet-details.php index 89f4ca4c..90180c16 100755 --- a/app/subnets/subnet-details/subnet-details.php +++ b/app/subnets/subnet-details/subnet-details.php @@ -226,7 +226,7 @@ else { if (is_object($device)) { # rack if ($User->settings->enableRACK=="1" && !is_blank($device->rack) && $User->get_module_permissions ("racks")>=User::ACCESS_RW) { - if (!is_object($Racks)) $Racks = new phpipam_rack ($Database); + if (!isset($Racks)) $Racks = new phpipam_rack($Database); $Racks->add_rack_start_print($device); $rack = $Tools->fetch_object("racks", "id", $device->rack); $rack_text = !is_object($rack) ? "" : "<br><span class='badge badge1 badge5' style='padding-top:4px;'>$rack->name / "._('Position').": $device->rack_start_print "._("Size").": $device->rack_size U <i class='btn btn-default btn-xs fa fa-server showRackPopup' data-rackId='$rack->id' data-deviceId='$device->id'></i></span>"; diff --git a/functions/php-excel-reader/excel_reader2.php b/functions/php-excel-reader/excel_reader2.php index cf988550..eb50e9b4 100755 --- a/functions/php-excel-reader/excel_reader2.php +++ b/functions/php-excel-reader/excel_reader2.php @@ -92,7 +92,8 @@ function v($data,$pos) { return ord($data[$pos]) | ord($data[$pos+1])<<8; } -class OLERead { +#[AllowDynamicProperties] +class OLERead extends stdClass { var $data = ''; function __construct(){ } @@ -309,7 +310,8 @@ define('SPREADSHEET_EXCEL_READER_DEF_NUM_FORMAT', "%s"); /* * Main Class */ -class Spreadsheet_Excel_Reader { +#[AllowDynamicProperties] +class Spreadsheet_Excel_Reader extends stdClass { // MK: Added to make data retrieval easier var $colnames = array(); @@ -542,7 +544,7 @@ class Spreadsheet_Excel_Reader { } return null; } - function fontProperty($row,$col,$sheet=0,$prop) { + function fontProperty($row,$col,$sheet=0,$prop=null) { $font = $this->fontRecord($row,$col,$sheet); if ($font!=null) { return $font[$prop]; @@ -919,7 +921,7 @@ class Spreadsheet_Excel_Reader { $this->setOutputEncoding($outputEncoding); } for ($i=1; $i<245; $i++) { - $name = strtolower(( (($i-1)/26>=1)?chr(($i-1)/26+64):'') . chr(($i-1)%26+65)); + $name = strtolower(((($i - 1) / 26 >= 1) ? chr(intval(($i - 1) / 26) + 64) : '') . chr(($i - 1) % 26 + 65)); $this->colnames[$name] = $i; $this->colindexes[$i] = $name; } @@ -1338,6 +1340,8 @@ class Spreadsheet_Excel_Reader { return -2; } $spos += $length + 4; + $previousRow = null; + $previousCol = null; while($cont) { $lowcode = ord($data[$spos]); if ($lowcode == SPREADSHEET_EXCEL_READER_TYPE_EOF) break; -- GitLab