Issues (1369)

includes/general/general_params.php (4 issues)

1
<?php
2
/**
3
 * Created by Gorlum 04.12.2017 4:13
4
 */
5
6
function isParamExists($paramName) {
7
  return array_key_exists($paramName, $_GET) || array_key_exists($paramName, $_POST);
8
}
9
10
/**
11
 * @param string $param_name
12
 * @param string $default
13
 *
14
 * @return string|array
15
 */
16
function sys_get_param($param_name, $default = '') {
17
  return $_POST[$param_name] !== null ? $_POST[$param_name] : ($_GET[$param_name] !== null ? $_GET[$param_name] : $default);
18
}
19
20
/**
21
 * @param string           $param_name
22
 * @param int|float|string $default
23
 *
24
 * @return int|float|string
25
 */
26
function sys_get_param_id($param_name, $default = 0) {
27
  return is_id($value = sys_get_param($param_name, $default)) ? $value : $default;
0 ignored issues
show
Bug Best Practice introduced by
The expression return is_id($value = sy...t)) ? $value : $default also could return the type array which is incompatible with the documented return type double|integer|string.
Loading history...
28
}
29
30
/**
31
 * @param string $param_name
32
 * @param int    $default
33
 *
34
 * @return int
35
 */
36
function sys_get_param_int($param_name, $default = 0) {
37
  $value = sys_get_param($param_name, $default);
38
39
  return $value === 'on' ? 1 : ($value === 'off' ? $default : intval($value));
40
}
41
42
/**
43
 * @param string $param_name
44
 * @param float  $default
45
 *
46
 * @return float
47
 */
48
function sys_get_param_float($param_name, $default = 0.0) {
49
  return floatval(sys_get_param($param_name, $default));
50
}
51
52
/**
53
 * @param string $param_name
54
 * @param string $default
55
 *
56
 * @return string
57
 */
58
function sys_get_param_escaped($param_name, $default = '') {
59
  return SN::$db->db_escape(sys_get_param($param_name, $default));
60
}
61
62
/**
63
 * Get list of units from environment ($_GET, $_POST etc)
64
 *
65
 * @param string $param_name
66
 * @param array  $default
67
 *
68
 * @return float[] - [int $unitId] => float $unitAmount
69
 */
70
function sys_get_param_unit_array($param_name, $default = []) {
71
  $result = $default;
72
73
  if (is_array($params = sys_get_param($param_name)) && !empty($params)) {
74
    $result = [];
75
    foreach (sys_get_param('resources') as $unitId => $unitAmount) {
76
      $result[intval($unitId)] = floatval($unitAmount);
77
    }
78
  }
79
80
  return $result;
81
}
82
83
/**
84
 * @param string $param_name
85
 * @param string $default
86
 *
87
 * @return string
88
 */
89
function sys_get_param_date_sql($param_name, $default = '2000-01-01') {
90
  $val = sys_get_param($param_name, $default);
91
92
  return preg_match(PREG_DATE_SQL_RELAXED, $val) ? $val : $default;
0 ignored issues
show
It seems like $val can also be of type array; however, parameter $subject of preg_match() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

92
  return preg_match(PREG_DATE_SQL_RELAXED, /** @scrutinizer ignore-type */ $val) ? $val : $default;
Loading history...
Bug Best Practice introduced by
The expression return preg_match(PREG_D...$val) ? $val : $default also could return the type array which is incompatible with the documented return type string.
Loading history...
93
}
94
95
/**
96
 * @param string $param_name
97
 * @param string $default
98
 *
99
 * @return string
100
 */
101
function sys_get_param_str_unsafe($param_name, $default = '') {
102
  return str_raw2unsafe(sys_get_param($param_name, $default));
103
}
104
105
/**
106
 * @param string $param_name
107
 * @param string $default
108
 *
109
 * @return string
110
 */
111
function sys_get_param_str($param_name, $default = '') {
112
  return SN::$db->db_escape(sys_get_param_str_unsafe($param_name, $default));
113
}
114
115
/**
116
 * @param string $param_name
117
 * @param string $default
118
 *
119
 * @return array
120
 */
121
function sys_get_param_str_both($param_name, $default = '') {
122
  $param = sys_get_param($param_name, $default);
123
  $param_unsafe = str_raw2unsafe($param);
124
125
  return array(
126
    'raw'    => $param,
127
    'unsafe' => $param_unsafe,
128
    'safe'   => SN::$db->db_escape($param_unsafe),
129
  );
130
}
131
132
/**
133
 * @param string $param_name
134
 * @param string $default
135
 *
136
 * @return array
137
 */
138
function sys_get_param_phone($param_name, $default = '') {
0 ignored issues
show
The parameter $default is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

138
function sys_get_param_phone($param_name, /** @scrutinizer ignore-unused */ $default = '') {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
139
  $phone_raw = sys_get_param_str_unsafe($param_name, $default = '');
140
  if ($phone_raw) {
141
    $phone = $phone_raw[0] == '+' ? '+' : '';
142
    for ($i = 0; $i < strlen($phone_raw); $i++) {
143
      $ord = ord($phone_raw[$i]);
144
      if ($ord >= 48 && $ord <= 57) {
145
        $phone .= $phone_raw[$i];
146
      }
147
    }
148
    $phone = strlen($phone) < 11 ? '' : $phone;
149
  } else {
150
    $phone = '';
151
  }
152
153
  return array('raw' => $phone_raw, 'phone' => $phone);
154
}
155