diff --git a/app/gateways/gateway_copy.php b/app/gateways/gateway_copy.php
index 6a0a94ab5..c246e5d02 100644
--- a/app/gateways/gateway_copy.php
+++ b/app/gateways/gateway_copy.php
@@ -39,12 +39,6 @@
$language = new text;
$text = $language->get();
-//get order and order by, page
- $order_by = preg_replace('#[^a-zA-Z0-9_\-]#', '', ($_REQUEST["order_by"] ?? ''));
- $order = $_REQUEST["order"] ?? 'asc';
- $page = isset($_REQUEST['page']) && is_numeric($_REQUEST['page']) ? $_REQUEST['page'] : 0;
- $search = $_REQUEST['search'] ?? null;
-
//set the http get/post variable(s) to a php variable
if (is_uuid($_REQUEST["id"])) {
$gateway_uuid = $_REQUEST["id"];
@@ -157,8 +151,34 @@
message::add($text['message-copy']);
}
+// Set variables from http GET parameters
+ $page = is_numeric($_GET['page'] ?? '') ? $_GET['page'] : 0;
+ $order_by = preg_replace('#[^a-zA-Z0-9_\-]#', '', ($_GET['order_by'] ?? 'gateway'));
+ $order = ($_GET['order'] ?? '') === 'desc' ? 'desc' : 'asc';
+ $search = $_GET['search'] ?? '';
+ $show = $_GET['show'] ?? '';
+
+// Build the query string
+ $url_params = [];
+ if (!empty($page)) {
+ $url_params['page'] = $page;
+ }
+ if (!empty($_GET['order_by'])) {
+ $url_params['order_by'] = $order_by;
+ }
+ if (!empty($_GET['order'])) {
+ $url_params['order'] = $order;
+ }
+ if (!empty($search)) {
+ $url_params['search'] = $search;
+ }
+ if (!empty($show) && $show == 'all' && permission_exists('gateway_all')) {
+ $url_params['show'] = $show;
+ }
+ $query_string = http_build_query($url_params);
+
//redirect the user
- header("Location: gateways.php?".(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null));
+ header("Location: gateways.php".($query_string ? '?'.$query_string : ''));
return;
-?>
\ No newline at end of file
+?>
diff --git a/app/gateways/gateway_edit.php b/app/gateways/gateway_edit.php
index 3f752324c..aaa245380 100644
--- a/app/gateways/gateway_edit.php
+++ b/app/gateways/gateway_edit.php
@@ -38,12 +38,6 @@
$language = new text;
$text = $language->get();
-//get order and order by, page
- $order_by = preg_replace('#[^a-zA-Z0-9_\-]#', '', ($_REQUEST["order_by"] ?? ''));
- $order = $_REQUEST["order"] ?? 'asc';
- $page = isset($_REQUEST['page']) && is_numeric($_REQUEST['page']) ? $_REQUEST['page'] : 0;
- $search = $_REQUEST['search'] ?? null;
-
//action add or update
if (!empty($_REQUEST["id"])) {
$action = "update";
@@ -59,6 +53,32 @@
$gateway_uuid = uuid();
}
+// Set variables from http GET parameters
+ $page = is_numeric($_GET['page'] ?? '') ? $_GET['page'] : 0;
+ $order_by = preg_replace('#[^a-zA-Z0-9_\-]#', '', ($_GET['order_by'] ?? 'gateway'));
+ $order = ($_GET['order'] ?? '') === 'desc' ? 'desc' : 'asc';
+ $search = $_GET['search'] ?? '';
+ $show = $_GET['show'] ?? '';
+
+// Build the query string
+ $url_params = [];
+ if (!empty($page)) {
+ $url_params['page'] = $page;
+ }
+ if (!empty($_GET['order_by'])) {
+ $url_params['order_by'] = $order_by;
+ }
+ if (!empty($_GET['order'])) {
+ $url_params['order'] = $order;
+ }
+ if (!empty($search)) {
+ $url_params['search'] = $search;
+ }
+ if (!empty($show) && $show == 'all' && permission_exists('gateway_all')) {
+ $url_params['show'] = $show;
+ }
+ $query_string = http_build_query($url_params);
+
//get total gateway count from the database, check limit, if defined
if ($action == 'add' && $settings->get('limit', 'gateways') != '') {
$sql = "select count(gateway_uuid) from v_gateways ";
@@ -69,7 +89,7 @@
if ($total_gateways >= $settings->get('limit', 'gateways')) {
message::add($text['message-maximum_gateways'].' '.$settings->get('limit', 'gateways'), 'negative');
- header('Location: gateways.php?'.(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null));
+ header('Location: gateways.php'.($query_string ? '?'.$query_string : ''));
exit;
}
}
@@ -123,7 +143,7 @@
$token = new token;
if (!$token->validate($_SERVER['PHP_SELF'])) {
message::add($text['message-invalid_token'],'negative');
- header('Location: gateways.php?'.(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null));
+ header('Location: gateways.php'.($query_string ? '?'.$query_string : ''));
exit;
}
@@ -247,7 +267,7 @@
if ($action == "update") {
message::add($text['message-update']);
}
- header("Location: gateways.php?".(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null));
+ header("Location: gateways.php".($query_string ? '?'.$query_string : ''));
exit;
}
}
@@ -368,7 +388,7 @@
echo "
\n";
echo "
".$text['title-gateway']."
\n";
echo "
\n";
- echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back'),'id'=>'btn_back','link'=>'gateways.php?'.(!empty($order_by) ? '&order_by='.$order_by.'&order='.$order : null).(isset($page) && is_numeric($page) ? '&page='.$page : null).(!empty($search) ? '&search='.urlencode($search) : null)]);
+ echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back'),'id'=>'btn_back','link'=>'gateways.php'.($query_string ? '?'.$query_string : '')]);
if ($action == "update" && permission_exists('gateway_add')) {
echo button::create(['type'=>'button','label'=>$text['button-copy'],'icon'=>$settings->get('theme', 'button_icon_copy'),'name'=>'btn_copy','style'=>'margin-left: 15px;','onclick'=>"modal_open('modal-copy','btn_copy');"]);
}
diff --git a/app/gateways/gateways.php b/app/gateways/gateways.php
index cca809650..a277a89e5 100644
--- a/app/gateways/gateways.php
+++ b/app/gateways/gateways.php
@@ -42,10 +42,35 @@
//get posted data
if (!empty($_POST['gateways'])) {
$action = $_POST['action'] ?? '';
- $search = $_POST['search'] ?? '';
$gateways = $_POST['gateways'] ?? '';
}
+// Set variables from http GET parameters
+ $page = is_numeric($_GET['page'] ?? '') ? $_GET['page'] : 0;
+ $order_by = preg_replace('#[^a-zA-Z0-9_\-]#', '', ($_GET['order_by'] ?? 'gateway'));
+ $order = ($_GET['order'] ?? '') === 'desc' ? 'desc' : 'asc';
+ $search = $_GET['search'] ?? '';
+ $show = $_GET['show'] ?? '';
+
+// Build the query string
+ $url_params = [];
+ if (!empty($page)) {
+ $url_params['page'] = $page;
+ }
+ if (!empty($_GET['order_by'])) {
+ $url_params['order_by'] = $order_by;
+ }
+ if (!empty($_GET['order'])) {
+ $url_params['order'] = $order;
+ }
+ if (!empty($search)) {
+ $url_params['search'] = $search;
+ }
+ if (!empty($show) && $show == 'all' && permission_exists('gateway_all')) {
+ $url_params['show'] = $show;
+ }
+ $query_string = http_build_query($url_params);
+
//get total gateway count from the database, check limit, if defined
if (!empty($action) && $action == 'copy' && !empty($settings->get('limit', 'gateways'))) {
$sql = "select count(gateway_uuid) from v_gateways ";
@@ -55,7 +80,7 @@
unset($sql, $parameters);
if ($total_gateways >= $settings->get('limit', 'gateways')) {
message::add($text['message-maximum_gateways'].' '.$settings->get('limit', 'gateways'), 'negative');
- header('Location: gateways.php');
+ header('Location: gateways.php'.($query_string ? '?'.$query_string : ''));
exit;
}
}
@@ -96,7 +121,7 @@
break;
}
- header('Location: gateways.php'.($search != '' ? '?search='.urlencode($search) : ''));
+ header('Location: gateways.php'.($query_string ? '?'.$query_string : ''));
exit;
}
@@ -132,14 +157,6 @@
}
}
-//get order and order by
- $order_by = $_GET["order_by"] ?? '';
- $order = $_GET["order"] ?? '';
-
-//set additional variables
- $search = !empty($_GET["search"]) ? $_GET["search"] : '';
- $show = !empty($_GET["show"]) ? $_GET["show"] : '';
-
//set from session variables
$list_row_edit_button = $settings->get('theme', 'list_row_edit_button', false);
@@ -150,48 +167,27 @@
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
}
if (!empty($search)) {
- $search = strtolower($_GET["search"]);
$sql .= "and (";
- $sql .= "lower(gateway) like :search ";
- $sql .= "or lower(username) like :search ";
- $sql .= "or lower(auth_username) like :search ";
- $sql .= "or lower(from_user) like :search ";
- $sql .= "or lower(from_domain) like :search ";
- $sql .= "or lower(proxy) like :search ";
- $sql .= "or lower(register_proxy) like :search ";
- $sql .= "or lower(outbound_proxy) like :search ";
- $sql .= "or lower(description) like :search ";
+ $sql .= " lower(gateway) like :search ";
+ $sql .= " or lower(username) like :search ";
+ $sql .= " or lower(auth_username) like :search ";
+ $sql .= " or lower(from_user) like :search ";
+ $sql .= " or lower(from_domain) like :search ";
+ $sql .= " or lower(proxy) like :search ";
+ $sql .= " or lower(register_proxy) like :search ";
+ $sql .= " or lower(outbound_proxy) like :search ";
+ $sql .= " or lower(description) like :search ";
$sql .= ") ";
- $parameters['search'] = '%'.$search.'%';
+ $parameters['search'] = '%'.lower_case($search).'%';
}
$total_gateways = $database->select($sql, $parameters ?? [], 'column');
$num_rows = $total_gateways;
//prepare to page the results
$rows_per_page = $settings->get('domain', 'paging', 50);
- $param = '';
- if (!empty($search)) {
- $param .= "&search=".urlencode($search);
- }
- if (!empty($_GET['show']) && $_GET['show'] == "all" && permission_exists('gateway_all')) {
- $param .= "&show=all";
- }
- if (!empty($order_by)) {
- $param .= "&order_by=".$order_by;
- }
- if (!empty($order)) {
- $param .= "&order=".$order;
- }
- $page = !empty($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 0;
- list($paging_controls, $rows_per_page) = paging($num_rows, $param, $rows_per_page);
- list($paging_controls_mini, $rows_per_page) = paging($num_rows, $param, $rows_per_page, true);
+ list($paging_controls, $rows_per_page) = paging($num_rows, $query_string, $rows_per_page);
+ list($paging_controls_mini, $rows_per_page) = paging($num_rows, $query_string, $rows_per_page, true);
$offset = $rows_per_page * $page;
- if (!empty($order_by)) {
- $param = str_replace("&order_by=".$order_by, '', $param);
- }
- if (!empty($order)) {
- $param = str_replace("&order=".$order, '', $param);
- }
//get the list
$sql = "select ";
@@ -215,19 +211,18 @@
$parameters['domain_uuid'] = $_SESSION['domain_uuid'];
}
if (!empty($search)) {
- $search = strtolower($_GET["search"]);
$sql .= "and (";
- $sql .= "lower(gateway) like :search ";
- $sql .= "or lower(username) like :search ";
- $sql .= "or lower(auth_username) like :search ";
- $sql .= "or lower(from_user) like :search ";
- $sql .= "or lower(from_domain) like :search ";
- $sql .= "or lower(proxy) like :search ";
- $sql .= "or lower(register_proxy) like :search ";
- $sql .= "or lower(outbound_proxy) like :search ";
- $sql .= "or lower(description) like :search ";
+ $sql .= " lower(gateway) like :search ";
+ $sql .= " or lower(username) like :search ";
+ $sql .= " or lower(auth_username) like :search ";
+ $sql .= " or lower(from_user) like :search ";
+ $sql .= " or lower(from_domain) like :search ";
+ $sql .= " or lower(proxy) like :search ";
+ $sql .= " or lower(register_proxy) like :search ";
+ $sql .= " or lower(outbound_proxy) like :search ";
+ $sql .= " or lower(description) like :search ";
$sql .= ") ";
- $parameters['search'] = '%'.$search.'%';
+ $parameters['search'] = '%'.lower_case($search).'%';
}
$sql .= order_by($order_by, $order, 'gateway', 'asc');
$sql .= limit_offset($rows_per_page, $offset);
@@ -263,20 +258,20 @@
if (permission_exists('gateway_delete') && $gateways) {
echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$settings->get('theme', 'button_icon_delete'),'id'=>'btn_delete','name'=>'btn_delete','style'=>'display: none;','onclick'=>"modal_open('modal-delete','btn_delete');"]);
}
- echo "\n";
echo "
\n";
@@ -302,7 +297,6 @@
echo "