PluginProbe
Loginizer / 1.3.6
Loginizer v1.3.6
2.1.0 2.0.9 2.0.8 1.9.8 1.9.9 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 trunk 1.0 1.0.1 1.0.2 1.1.0 1.1.1 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 All 74 releases
loginizer / functions.php

functions.php in Loginizer 1.3.6, at functions.php

331 lines 7.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 include_once(LOGINIZER_DIR.'/IPv6/IPv6.php');
4
5 // Get the client IP
6 function _lz_getip(){
7 if(isset($_SERVER["REMOTE_ADDR"])){
8 return $_SERVER["REMOTE_ADDR"];
9 }elseif(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
10 return $_SERVER["HTTP_X_FORWARDED_FOR"];
11 }elseif(isset($_SERVER["HTTP_CLIENT_IP"])){
12 return $_SERVER["HTTP_CLIENT_IP"];
13 }
14 }
15
16 // Get the client IP
17 function lz_getip(){
18
19 global $loginizer;
20
21 // Just so that we have something
22 $ip = _lz_getip();
23
24 $loginizer['ip_method'] = (int) @$loginizer['ip_method'];
25
26 if(isset($_SERVER["REMOTE_ADDR"])){
27 $ip = $_SERVER["REMOTE_ADDR"];
28 }
29
30 if(isset($_SERVER["HTTP_X_FORWARDED_FOR"]) && @$loginizer['ip_method'] == 1){
31 $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
32 }
33
34 if(isset($_SERVER["HTTP_CLIENT_IP"]) && @$loginizer['ip_method'] == 2){
35 $ip = $_SERVER["HTTP_CLIENT_IP"];
36 }
37
38 // Hacking fix for X-Forwarded-For
39 if(!lz_valid_ip($ip)){
40 return '';
41 }
42
43 return $ip;
44
45 }
46
47 // Execute a select query and return an array
48 function lz_selectquery($query, $array = 0){
49 global $wpdb;
50
51 $result = $wpdb->get_results($query, 'ARRAY_A');
52
53 if(empty($array)){
54 return current($result);
55 }else{
56 return $result;
57 }
58 }
59
60 // Check if an IP is valid
61 function lz_valid_ip($ip){
62
63 // IPv6
64 if(lz_valid_ipv6($ip)){
65 return true;
66 }
67
68 // IPv4
69 if(!ip2long($ip)){
70 return false;
71 }
72
73 return true;
74 }
75
76 function lz_valid_ipv6($ip){
77
78 $pattern = '/^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/';
79
80 if(!preg_match($pattern, $ip)){
81 return false;
82 }
83
84 return true;
85
86 }
87
88 // Check if a field is posted via POST else return default value
89 function lz_optpost($name, $default = ''){
90
91 if(!empty($_POST[$name])){
92 return lz_inputsec(lz_htmlizer(trim($_POST[$name])));
93 }
94
95 return $default;
96 }
97
98 // Check if a field is posted via GET else return default value
99 function lz_optget($name, $default = ''){
100
101 if(!empty($_GET[$name])){
102 return lz_inputsec(lz_htmlizer(trim($_GET[$name])));
103 }
104
105 return $default;
106 }
107
108 // Check if a field is posted via GET or POST else return default value
109 function lz_optreq($name, $default = ''){
110
111 if(!empty($_REQUEST[$name])){
112 return lz_inputsec(lz_htmlizer(trim($_REQUEST[$name])));
113 }
114
115 return $default;
116 }
117
118 // For filling in posted values
119 function lz_POSTval($name, $default = ''){
120
121 return (!empty($_POST) ? (!isset($_POST[$name]) ? '' : $_POST[$name]) : $default);
122
123 }
124
125 function lz_POSTchecked($name, $default = false){
126
127 return (!empty($_POST) ? (isset($_POST[$name]) ? 'checked="checked"' : '') : (!empty($default) ? 'checked="checked"' : ''));
128
129 }
130
131 function lz_POSTselect($name, $value, $default = false){
132
133 if(empty($_POST)){
134 if(!empty($default)){
135 return 'selected="selected"';
136 }
137 }else{
138 if(isset($_POST[$name])){
139 if(trim($_POST[$name]) == $value){
140 return 'selected="selected"';
141 }
142 }
143 }
144
145 }
146
147 function lz_inputsec($string){
148
149 if(!get_magic_quotes_gpc()){
150
151 $string = addslashes($string);
152
153 }else{
154
155 $string = stripslashes($string);
156 $string = addslashes($string);
157
158 }
159
160 // This is to replace ` which can cause the command to be executed in exec()
161 $string = str_replace('`', '\`', $string);
162
163 return $string;
164
165 }
166
167 function lz_htmlizer($string){
168
169 $string = htmlentities($string, ENT_QUOTES, 'UTF-8');
170
171 preg_match_all('/(&amp;#(\d{1,7}|x[0-9a-fA-F]{1,6});)/', $string, $matches);//r_print($matches);
172
173 foreach($matches[1] as $mk => $mv){
174 $tmp_m = lz_entity_check($matches[2][$mk]);
175 $string = str_replace($matches[1][$mk], $tmp_m, $string);
176 }
177
178 return $string;
179
180 }
181
182 function lz_entity_check($string){
183
184 //Convert Hexadecimal to Decimal
185 $num = ((substr($string, 0, 1) === 'x') ? hexdec(substr($string, 1)) : (int) $string);
186
187 //Squares and Spaces - return nothing
188 $string = (($num > 0x10FFFF || ($num >= 0xD800 && $num <= 0xDFFF) || $num < 0x20) ? '' : '&#'.$num.';');
189
190 return $string;
191
192 }
193
194 // Check if a checkbox is selected
195 function lz_is_checked($post){
196
197 if(!empty($_POST[$post])){
198 return true;
199 }
200 return false;
201 }
202
203 // Reoort an error
204 function lz_report_error($error = array()){
205
206 if(empty($error)){
207 return true;
208 }
209
210 $error_string = '<b>Please fix the below error(s) :</b> <br />';
211
212 foreach($error as $ek => $ev){
213 $error_string .= '* '.$ev.'<br />';
214 }
215
216 echo '<div id="message" class="error"><p>'
217 . __($error_string, 'loginizer')
218 . '</p></div>';
219 }
220
221 // Report a notice
222 function lz_report_notice($notice = array()){
223
224 global $wp_version;
225
226 if(empty($notice)){
227 return true;
228 }
229
230 // Which class do we have to use ?
231 if(version_compare($wp_version, '3.8', '<')){
232 $notice_class = 'updated';
233 }else{
234 $notice_class = 'updated';
235 }
236
237 $notice_string = '<b>Please check the below notice(s) :</b> <br />';
238
239 foreach($notice as $ek => $ev){
240 $notice_string .= '* '.$ev.'<br />';
241 }
242
243 echo '<div id="message" class="'.$notice_class.'"><p>'
244 . __($notice_string, 'loginizer')
245 . '</p></div>';
246 }
247
248 // Convert an objext to array
249 function lz_objectToArray($d){
250
251 if(is_object($d)){
252 $d = get_object_vars($d);
253 }
254
255 if(is_array($d)){
256 return array_map(__FUNCTION__, $d); // recursive
257 }elseif(is_object($d)){
258 return lz_objectToArray($d);
259 }else{
260 return $d;
261 }
262 }
263
264 // Sanitize variables
265 function lz_sanitize_variables($variables = array()){
266
267 if(is_array($variables)){
268 foreach($variables as $k => $v){
269 $variables[$k] = trim($v);
270 $variables[$k] = escapeshellcmd($v);
271 }
272 }else{
273 $variables = escapeshellcmd(trim($variables));
274 }
275
276 return $variables;
277 }
278
279 // Is multisite ?
280 function lz_is_multisite() {
281
282 if(function_exists('get_site_option') && function_exists('is_multisite') && is_multisite()){
283 return true;
284 }
285
286 return false;
287 }
288
289 // Generate a random string
290 function lz_RandomString($length = 10){
291 $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
292 $charactersLength = strlen($characters);
293 $randomString = '';
294 for($i = 0; $i < $length; $i++){
295 $randomString .= $characters[rand(0, $charactersLength - 1)];
296 }
297 return $randomString;
298 }
299
300 function lz_print($array){
301
302 echo '<pre>';
303 print_r($array);
304 echo '</pre>';
305
306 }
307
308 function lz_cleanpath($path){
309 $path = str_replace('\\\\', '/', $path);
310 $path = str_replace('\\', '/', $path);
311 $path = str_replace('//', '/', $path);
312 return rtrim($path, '/');
313 }
314
315 // Returns the Numeric Value of results Per Page
316 function lz_get_page($get = 'page', $resperpage = 50){
317
318 $resperpage = (!empty($_REQUEST['reslen']) && is_numeric($_REQUEST['reslen']) ? (int) lz_optreq('reslen') : $resperpage);
319
320 if(lz_optget($get)){
321 $pg = (int) lz_optget($get);
322 $pg = $pg - 1;
323 $page = ($pg * $resperpage);
324 $page = ($page <= 0 ? 0 : $page);
325 }else{
326 $page = 0;
327 }
328 return $page;
329 }
330
331