SEO Redirection Plugin - Version 7.3

Version Description

  • Bug fixing (solving datatable issues)
Download this release

Release Info

Developer osamaesh
Plugin Icon 128x128 SEO Redirection Plugin
Version 7.3
Comparing to
See all releases

Code changes from version 7.2 to 7.3

common/controls.php CHANGED
@@ -8,7 +8,6 @@ Contact: www.clogica.com info@clogica.com mobile: +972599322252
8
 
9
  include_once "util.php";
10
  include_once "controls/datagrid.class.php";
11
- include_once "controls/cf_ckeckboxlist.php";
12
  include_once "controls/cf_checkoption.php";
13
  include_once "controls/cf_datemenu.php";
14
  include_once "controls/cf_dropdown.php";
8
 
9
  include_once "util.php";
10
  include_once "controls/datagrid.class.php";
 
11
  include_once "controls/cf_checkoption.php";
12
  include_once "controls/cf_datemenu.php";
13
  include_once "controls/cf_dropdown.php";
common/controls/cf_ckeckboxlist.php DELETED
@@ -1,375 +0,0 @@
1
- <?php
2
-
3
- if(!class_exists('ckeckboxlist')){
4
- class ckeckboxlist{
5
- var $chname="check";
6
- var $check;
7
- var $script="";
8
- var $checkall="Check All";
9
- var $precheck="";
10
- var $width=100;
11
- var $height=100;
12
- var $selcolor="CCFFCC";
13
-
14
-
15
- //----------------------------------------------------------------------
16
- function __construct($chname,$width=100,$height=100,$precheck,$selcolor="CCFFCC")
17
- {
18
- $this->chname=$chname;
19
- $this->check = new checkbox($chname);
20
- $this->check->chbox_init();
21
- $this->width=$width;
22
- $this->height=$height;
23
- $this->precheck=$precheck;
24
- $this->selcolor=$selcolor;
25
- }
26
-
27
-
28
- //----------------------------------------------------------------------
29
-
30
- function checkalltext($txt)
31
- {
32
- $this->checkall=$txt;
33
-
34
- }
35
-
36
- //----------------------------------------------------------------------
37
- function ischecked($val)
38
- {
39
- $chks=explode(',',$this->precheck);
40
- for($i=0;$i< count($chks); $i++)
41
- { if($chks[$i]==$val)
42
- return'checked';
43
- }
44
-
45
- return '';
46
- }
47
-
48
-
49
- //----------------------------------------------------------------------
50
- function additem($val,$txt)
51
- {
52
- $this->script=$this->script . "<div id='" . $this->check->getcheck($this->check->getcount()+1). "_div' >" . $this->check->get_chbox_add($this->check->getcount()+1,$val,$this->ischecked($val),$this->check->chname . "_div_list_color('" . $this->check->getcheck($this->check->getcount()+1). "')") . "<span style='cursor:hand' onclick=\"". $this->check->chname ."_list_check('" . $this->check->getcheck($this->check->getcount()) . "') \"> $txt</span></div>";
53
- }
54
-
55
- //------------------------------------------------------------------------
56
-
57
- function data_bind($tbl,$name="name",$id="id",$where="",$order="",$limit="")
58
- {
59
- global $mysql;
60
- $res=$mysql->sql(" select $name,$id from PREFIX_$tbl $where $order $limit ");
61
- while($ar=mysqli_fetch_array($res)){
62
- $this->additem($ar[1],$ar[0]);
63
- }
64
- }
65
-
66
- //----------------------------------------------------------------------
67
- function endlist()
68
- {
69
-
70
-
71
- $js="<script>
72
- function " . $this->check->chname . "_list_check(check){
73
- if(document.getElementById(check).checked){
74
- document.getElementById(check).checked=false;
75
- }
76
- else
77
- {
78
- document.getElementById(check).checked=true;
79
- }
80
-
81
- " . $this->check->chname . "_div_list_color(check);
82
- " . $this->check->chname . "_update();
83
- }
84
-
85
-
86
-
87
- function " . $this->check->chname . "_div_list_color(check){
88
- if(document.getElementById(check).checked){
89
- document.getElementById(check + '_div').style.backgroundColor='#" . $this->selcolor . "';
90
- }
91
- else
92
- {
93
- document.getElementById(check + '_div').style.backgroundColor='';
94
- }
95
- }
96
-
97
-
98
- function " . $this->check->chname . "_all_div_list_color()
99
- {
100
- var count = document.getElementById('" . $this->check->chname . "_count').value;
101
- for(i=1;i<=count;i++)
102
- " . $this->check->chname . "_div_list_color('" . $this->check->chname . "_box' + i);
103
-
104
- }
105
-
106
- </script>";
107
-
108
-
109
- $htm="<div style='background-color: #FFFFF6; width: " . $this->width . "px; height: " . $this->height . "px; overflow:auto;' >";
110
-
111
- echo $js;
112
- echo $htm;
113
- $this->check->chbox_all($this->check->chname . "_all_div_list_color()");
114
- echo $this->checkall . "<br>";
115
- echo $this->script;
116
- $this->check->chbox_finish();
117
- echo "</div>";
118
- echo "<script>" . $this->check->chname . "_all_div_list_color()</script>";
119
- echo "<script>" . $this->check->chname . "_update()</script>";
120
- }
121
-
122
- }}
123
-
124
-
125
-
126
- ////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
127
-
128
- ////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
129
-
130
- //// checkbox class to create a list of checks ! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
131
-
132
- /*
133
-
134
- A class to create a custom group of check boxes to use in any report
135
-
136
-
137
-
138
- ------------------------------------------------------------------
139
-
140
- example
141
-
142
- ------------------------------------------------------------------
143
-
144
- <?
145
-
146
- $ch = new checkbox('check33');
147
-
148
- $ch->chbox_init();
149
-
150
- ?>
151
-
152
-
153
-
154
- <? $ch->chbox_all(); ?> Check all <br>
155
-
156
-
157
-
158
- <p><? $ch->chbox_add(1,12) ?>i urtiurtowertowet</p>
159
-
160
- <p><? $ch->chbox_add(2,13) ?> oiutoieru twoieurtoe</p>
161
-
162
- <p><? $ch->chbox_add(3,14) ?> wiu riow uerowqeu r</p>
163
-
164
-
165
-
166
- <p><? $ch->chbox_finish()?>
167
-
168
-
169
-
170
-
171
-
172
- */
173
-
174
- ////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
175
- if(!class_exists('checkbox')){
176
- class checkbox{
177
-
178
-
179
- var $chname="check";
180
- var $count=0;
181
-
182
-
183
- //----------------------------------------------------------------------
184
-
185
- function set_sellect_all_functions($fun)
186
-
187
- {
188
-
189
- $this->sellect_all_functions=$fun;
190
-
191
- }
192
-
193
-
194
-
195
- //----------------------------------------------------------------------
196
-
197
- function __construct($chname)
198
-
199
- {
200
-
201
- $this->chname=$chname;
202
-
203
- }
204
-
205
-
206
- //----------------------------------------------------------------------
207
-
208
- function chbox_init()
209
-
210
- {
211
-
212
-
213
- $js="
214
-
215
-
216
-
217
- <script>
218
-
219
- function " . $this->chname . "_update()
220
-
221
- {
222
-
223
- var check_name='" . $this->chname . "';
224
-
225
- document.getElementById(check_name).value='';
226
-
227
- count=document.getElementById(check_name + '_count').value;
228
-
229
- if(count>0){
230
-
231
- for(i=1;i<=count;i++)
232
-
233
- {
234
-
235
- if(document.getElementById(check_name + '_box' + i ).checked)
236
-
237
- {
238
-
239
- if(document.getElementById(check_name).value =='')
240
-
241
- document.getElementById(check_name).value=document.getElementById(check_name + '_box' + i ).value;
242
-
243
- else
244
-
245
- document.getElementById(check_name).value= document.getElementById(check_name).value + ',' + document.getElementById(check_name + '_box' + i ).value;
246
-
247
- }
248
-
249
- }
250
-
251
- }
252
-
253
- }
254
-
255
- </script>
256
-
257
-
258
- <script>
259
-
260
- function " . $this->chname . "_checkall()
261
-
262
- {
263
-
264
- count=document.getElementById('" . $this->chname . "_count').value;
265
-
266
- if(count>0){
267
-
268
-
269
-
270
- initval=document.getElementById('" . $this->chname . "_allboxes' ).checked;
271
-
272
- for(i=1;i<=count;i++)
273
-
274
- {
275
-
276
- document.getElementById('" . $this->chname . "_box' + i ).checked=initval;
277
-
278
-
279
-
280
- }
281
-
282
- }
283
-
284
- " . $this->chname . "_update();
285
-
286
- }
287
-
288
- </script>
289
-
290
- ";
291
-
292
-
293
-
294
- echo $js;
295
-
296
- }
297
-
298
-
299
-
300
- //----------------------------------------------------------------------
301
-
302
- function chbox_all($fun="")
303
-
304
- {
305
-
306
- echo "<input type='checkbox' name='" . $this->chname . "_allboxes' id='" . $this->chname . "_allboxes' onclick=\" " . $this->chname . "_checkall();$fun\" value='ON'>";
307
-
308
- }
309
-
310
-
311
- //----------------------------------------------------------------------
312
-
313
- function chbox_add($num,$val,$ext='',$onclick='')
314
-
315
- {
316
-
317
- $this->count=$this->count+1;
318
-
319
- echo "<input onclick=\" " . $this->chname . "_update();document.getElementById('" . $this->chname . "_allboxes' ).checked=false;$onclick\" type='checkbox' name='" . $this->chname . "_box". $num ."' id='" . $this->chname . "_box". $num ."' value='" . $val . "' $ext >";
320
-
321
-
322
- }
323
-
324
-
325
- //----------------------------------------------------------------------
326
-
327
- function get_chbox_add($num,$val,$ext='',$onclick='')
328
-
329
- {
330
-
331
- $this->count=$this->count+1;
332
-
333
- return "<input onclick=\" " . $this->chname . "_update();document.getElementById('" . $this->chname . "_allboxes' ).checked=false;$onclick\" type='checkbox' name='" . $this->chname . "_box". $num ."' id='" . $this->chname . "_box". $num ."' value='" . $val . "' $ext >";
334
-
335
- }
336
-
337
-
338
- //----------------------------------------------------------------------
339
-
340
- function getcheck($num)
341
-
342
- {
343
-
344
- return $this->chname . "_box". $num;
345
-
346
- }
347
-
348
- //----------------------------------------------------------------------
349
-
350
- function getcount()
351
-
352
- {
353
-
354
- return $this->count;
355
-
356
- }
357
-
358
-
359
-
360
- //----------------------------------------------------------------------
361
-
362
- function chbox_finish()
363
-
364
- {
365
-
366
- echo "<input type='hidden' name='" . $this->chname . "' id='" . $this->chname . "' size='21'><input type='hidden' name='" . $this->chname . "_count' id='" . $this->chname . "_count' value='" . $this->count . "' >";
367
-
368
- }
369
-
370
-
371
- }}
372
-
373
-
374
-
375
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
common/controls/datagrid.class.php CHANGED
@@ -396,8 +396,59 @@ class datagrid
396
  $row[$i]=$ar[$this->get_rs_field_name($this->cols[$i]['field'])];
397
 
398
  }else if(array_key_exists('php',$this->cols[$i]) && $this->cols[$i]['php']!='')
399
- {
400
- $row[$i]= eval(str_ireplace('echo','return',$this->cols[$i]['php']));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
401
 
402
  }else if(array_key_exists('html',$this->cols[$i]) && $this->cols[$i]['html']!='')
403
  {
@@ -417,7 +468,6 @@ class datagrid
417
  $temp = $this->cols[$i]['template'];
418
  $params = $this->cols[$i]['param'];
419
  $content = $template[$temp]['content'];
420
-
421
  if(is_array($params))
422
  for($j=0;$j<count($params);$j++)
423
  {
@@ -427,7 +477,6 @@ class datagrid
427
  $content=str_ireplace('{param}' , $params , $content);
428
 
429
  }
430
-
431
  if(is_array($template[$temp]['options']))
432
  {
433
  foreach ($template[$temp]['options'] as $key => $value )
@@ -436,16 +485,12 @@ class datagrid
436
  }
437
 
438
  }
439
-
440
-
441
  foreach ($ar as $key => $value)
442
  {
443
  $key_var = "db_" . $key;
444
  $content=str_ireplace('{' . $key_var . '}', $$key_var , $content);
445
  }
446
-
447
  $row[$i]= $content;
448
-
449
  }
450
  }
451
 
@@ -456,7 +501,9 @@ class datagrid
456
  }
457
 
458
  //-----------------------------------------------------------------
459
-
 
 
460
  public function run()
461
  {
462
 
396
  $row[$i]=$ar[$this->get_rs_field_name($this->cols[$i]['field'])];
397
 
398
  }else if(array_key_exists('php',$this->cols[$i]) && $this->cols[$i]['php']!='')
399
+ {
400
+
401
+ $patterns = array();
402
+ $patterns[] = '/DB_ID/';
403
+ $patterns[] = '/db_redirect_from_type/';
404
+ $patterns[] = '/db_enabled/';
405
+ $patterns[] = '/db_redirect_from_url/';
406
+ $patterns[] = '/db_redirect_from/';
407
+ $patterns[] = '/db_redirect_to_type/';
408
+ $patterns[] = '/db_redirect_to_url/';
409
+ $patterns[] = '/db_redirect_to/';
410
+ $patterns[] = '/db_link/';
411
+ $patterns[] = '/db_link_url/';
412
+ $patterns[] = '/db_date_y/';
413
+ $patterns[] = '/db_date_h/';
414
+ $patterns[] = '/db_ip/';
415
+ $patterns[] = '/db_rfrom_url/';
416
+ $patterns[] = '/db_rfrom/';
417
+ $patterns[] = '/db_rto_url/';
418
+ $patterns[] = '/db_rto/';
419
+ $patterns[] = '/db_rsrc_custom/';
420
+ $patterns[] = '/db_referrer_var/';
421
+
422
+ $replacements = array();
423
+ $replacements[] = isset($db_ID)?absint($db_ID):'';
424
+ $replacements[] = isset($db_redirect_from_type)?esc_html($db_redirect_from_type):'';
425
+ $replacements[] = isset($db_enabled)?absint($db_enabled):'';
426
+ $replacements[] = isset($db_redirect_from)?WPSR_make_absolute_url(esc_url($db_redirect_from)):'';
427
+ $replacements[] = isset($db_redirect_from)?esc_html($db_redirect_from):'';
428
+ $replacements[] = isset($db_redirect_to_type)?esc_html($db_redirect_to_type):'';
429
+ $replacements[] = isset($db_redirect_to)?WPSR_make_absolute_url(esc_url($db_redirect_to)):'';
430
+ $replacements[] = isset($db_redirect_to)?esc_html($db_redirect_to):'';
431
+ $replacements[] = isset($db_link)?esc_url($db_link):'';
432
+ $replacements[] = isset($db_link)?WPSR_make_absolute_url(esc_url($db_link)):'';
433
+ $replacements[] = isset($db_ctime)?esc_html(date('Y-n-j',strtotime($db_ctime))):'';
434
+ $replacements[] = isset($db_ctime)?esc_html(date('H:i:s',strtotime($db_ctime))):'';
435
+ $replacements[] = isset($db_ip)?esc_html(preg_replace('/([0-9]+\.[0-9]+\.[0-9]+)\.[0-9]+/', '\1.***', $db_ip)):'';
436
+ $replacements[] = isset($db_rfrom)?WPSR_make_absolute_url(esc_url($db_rfrom)):'';
437
+ $replacements[] = isset($db_rfrom)?SR_cut_string(esc_url($db_rfrom),0,120):'';
438
+ $replacements[] = isset($db_rto)?WPSR_make_absolute_url(esc_url($db_rto)):'';
439
+ $replacements[] = isset($db_rto)?SR_cut_string(esc_url($db_rto),0,120):'';
440
+ $rsrc_var = '';
441
+ if(isset($db_rsrc) && $db_rsrc=='404'){$rsrc_var .=$db_rsrc;}
442
+ if(isset($db_rsrc) && $db_rsrc=='Custom'){$rsrc_var .= sprintf("<a target='blank' href='?page=wp-seo-redirection.php&edit=%d'>%s</a>",absint($db_rID),esc_html($db_rsrc));}
443
+ if(isset($db_rsrc) && $db_rsrc=='Post'){$rsrc_var .= sprintf("<a target='blank' href='post.php?action=edit&post=%d'>%s</a>",absint($db_postID),esc_html($db_rsrc));}
444
+ $replacements[] = $rsrc_var;
445
+ $db_referrer_var = '';
446
+ if(isset($db_referrer) && $db_referrer !=""){
447
+ $db_referrer_var = sprintf("<a target='_blank' title='%s' href='%s'><span class='link'></span></a>",esc_url($db_referrer),esc_url($db_referrer));
448
+ }
449
+ $replacements[] = $db_referrer_var;
450
+
451
+ $row[$i]= $this->replace_text_var($patterns,$replacements,$this->cols[$i]['php']);
452
 
453
  }else if(array_key_exists('html',$this->cols[$i]) && $this->cols[$i]['html']!='')
454
  {
468
  $temp = $this->cols[$i]['template'];
469
  $params = $this->cols[$i]['param'];
470
  $content = $template[$temp]['content'];
 
471
  if(is_array($params))
472
  for($j=0;$j<count($params);$j++)
473
  {
477
  $content=str_ireplace('{param}' , $params , $content);
478
 
479
  }
 
480
  if(is_array($template[$temp]['options']))
481
  {
482
  foreach ($template[$temp]['options'] as $key => $value )
485
  }
486
 
487
  }
 
 
488
  foreach ($ar as $key => $value)
489
  {
490
  $key_var = "db_" . $key;
491
  $content=str_ireplace('{' . $key_var . '}', $$key_var , $content);
492
  }
 
493
  $row[$i]= $content;
 
494
  }
495
  }
496
 
501
  }
502
 
503
  //-----------------------------------------------------------------
504
+ public function replace_text_var($patterns=array(),$replacements=array(),$string=''){
505
+ return preg_replace($patterns, $replacements, $string);
506
+ }
507
  public function run()
508
  {
509
 
options/option_page_404.php CHANGED
@@ -127,7 +127,7 @@ function go_del(){
127
 
128
 
129
 
130
- $grid->add_php_col(' echo " <a target=\'_blank\' href=\'" . WPSR_make_absolute_url($db_link) ."\'> {$db_link}</a>" ;','Link');
131
  $grid->add_data_col('ctime','Discovered');
132
 
133
  if($util->get_option_value('ip_logging_status') == 0)
@@ -138,7 +138,7 @@ function go_del(){
138
  $grid->add_html_col('<a target="_blank" href="https://tools.keycdn.com/geo?host={db_ip}">{db_ip}</a>',__('IP','wsr'));
139
  }else{
140
 
141
- $grid->add_php_col('echo preg_replace(\'/([0-9]+\\.[0-9]+\\.[0-9]+)\\.[0-9]+/\', \'\\1.***\', $db_ip); ',__('IP','wsr'));
142
  }
143
 
144
 
127
 
128
 
129
 
130
+ $grid->add_php_col(" <a target='_blank' href='db_link_url'>db_link</a>",'Link');
131
  $grid->add_data_col('ctime','Discovered');
132
 
133
  if($util->get_option_value('ip_logging_status') == 0)
138
  $grid->add_html_col('<a target="_blank" href="https://tools.keycdn.com/geo?host={db_ip}">{db_ip}</a>',__('IP','wsr'));
139
  }else{
140
 
141
+ $grid->add_php_col(' db_ip ',__('IP','wsr'));
142
  }
143
 
144
 
options/option_page_custome_redirection.php CHANGED
@@ -6,7 +6,7 @@ $table_name_404 = $table_prefix . 'WP_SEO_404_links';
6
 
7
  $nonce="";
8
  if(isset($_REQUEST['_wpnonce']))
9
- $nonce = $_REQUEST['_wpnonce'];
10
 
11
  if($util->post('redirect_from')!='' && wp_verify_nonce( $nonce, 'seoredirection' )){
12
 
6
 
7
  $nonce="";
8
  if(isset($_REQUEST['_wpnonce']))
9
+ $nonce = WPSR_sanitize_text_or_array_field($_REQUEST['_wpnonce']);
10
 
11
  if($util->post('redirect_from')!='' && wp_verify_nonce( $nonce, 'seoredirection' )){
12
 
options/option_page_custome_redirection_add_update.php DELETED
@@ -1,295 +0,0 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
3
- global $wpdb,$table_prefix,$util;
4
- $table_name = $table_prefix . 'WP_SEO_Redirection';
5
-
6
- $redirect_from="";
7
- $redirect_to="";
8
- $redirect_type="";
9
- $redirect_from_type="";
10
- $redirect_from_folder_settings="";
11
- $redirect_from_subfolders="";
12
- $redirect_to_type="";
13
- $redirect_to_folder_settings="";
14
- $enabled="";
15
-
16
- if($util->get('add')!='')
17
- echo "<h3>".__('Add New Custom Redirection','wsr')."<hr></h3>";
18
- else if(intval($util->get('edit'))>0){
19
- echo "<h3>".__('Update Existing Redirection','wsr')."<hr></h3>";
20
- $item = $wpdb->get_row($wpdb->prepare(" select * from $table_name where ID=%d ",$util->get('edit')));
21
- if($wpdb->num_rows==0)
22
- {
23
- $utilpro->info_option_msg(__("Sorry, this redirect rule is not found, it may deleted by the user!",'wsr'));
24
- exit(0);
25
- }
26
- $redirect_from=$item->redirect_from;
27
- $redirect_to=$item->redirect_to;
28
- $redirect_type=$item->redirect_type;
29
-
30
- $redirect_from_type=$item->redirect_from_type;
31
- $redirect_from_folder_settings=$item->redirect_from_folder_settings;
32
- $redirect_from_subfolders=$item->redirect_from_subfolders;
33
-
34
- $redirect_to_type=$item->redirect_to_type;
35
- $redirect_to_folder_settings=$item->redirect_to_folder_settings;
36
-
37
- $enabled=$item->enabled;
38
-
39
- }
40
- else
41
- header("location: .");
42
-
43
-
44
- if($util->get('page404')!='')
45
- {
46
- $table_name_404 = $table_prefix . 'WP_SEO_404_links';
47
- $i404 = $wpdb->get_row(" select link from $table_name_404 where ID=". intval($util->get('page404')));
48
- if($i404->link!='')
49
- $redirect_from=$i404->link;
50
- else
51
- $_GET['page404']='';
52
- }
53
-
54
- ?>
55
- <form onsubmit="return check_from();" method="POST" id="myform" accept-charset="UTF-8" action="<?php echo $util->WPSR_get_current_parameters(array('add','edit','page404'));?>">
56
- <table class="cform" width="100%">
57
- <tr>
58
- <td class="label"><?php _e('Redirection status:','wsr') ?></td>
59
- <td> <select size="1" name="enabled" id="enabled">
60
- <option value="1"><?php _e('Enabled','wsr') ?></option>
61
- <option value="0"><?php _e('Disabled','wsr') ?></option>
62
- </select>
63
-
64
- </td>
65
- </tr>
66
- <tr>
67
-
68
- <td class="label"><?php _e('Redirect from:','wsr') ?></td>
69
- <td>
70
- <div id="rfrom_div">
71
- <select onchange="redirect_from_type_change()" size="1" name="redirect_from_type" id="redirect_from_type">
72
- <option value="Page"><?php _e('Page','wsr') ?></option>
73
- <option value="Folder"><?php _e('Folder','wsr') ?></option>
74
- <option value="Regex"><?php _e('Regex','wsr') ?></option>
75
- </select>
76
- <input onblur="check_redirect_from()" type="text" id="redirect_from" style="height: 40px;" name="redirect_from" size="45" value="<?php echo $redirect_from?>">
77
- <select onchange="redirect_to_folder_settings_change()" size="1" name="redirect_from_folder_settings" id="redirect_from_folder_settings">
78
- <option value="1"><?php _e('Only the folder','wsr') ?></option>
79
- <option value="2"><?php _e("The folder and it's content",'wsr') ?></option>
80
- <option value="3"><?php _e("Only the folder's content",'wsr') ?></option>
81
- </select>
82
- <select size="1" name="redirect_from_subfolders" id="redirect_from_subfolders" class="cmb2_select">
83
- <option value="0"><?php _e("Include sub-folders",'wsr') ?></option>
84
- <option value="1"><?php _e("Do not include sub-folders",'wsr') ?></option>
85
- </select>
86
-
87
- * <font style="font-size: 12px;color:#a7a7a7"><?php _e("(Starting with 'http://')",'wsr') ?></font>
88
- </div>
89
- <?php if($util->get('page404')!='') echo $redirect_from; ?>
90
- </td>
91
- </tr>
92
- <tr>
93
- <td class="label"><?php _e("Redirect to:",'wsr') ?></td>
94
- <td>
95
- <select onchange="redirect_to_type_change()" size="1" class="cmb2_select" name="redirect_to_type" id="redirect_to_type">
96
- <option value="Page"><?php _e("Page:",'wsr') ?></option>
97
- <option value="Folder"><?php _e("Folder",'wsr') ?></option>
98
- </select>
99
-
100
- <input onblur="check_redirect_to()" type="text" id="redirect_to" class="regular-text" style="height: 40px;" name="redirect_to" size="45" value="<?php echo $redirect_to?>">
101
-
102
- <select size="1" name="redirect_to_folder_settings" id="redirect_to_folder_settings">
103
- <option value="1"><?php _e("Normal",'wsr') ?></option>
104
- <option value="2"><?php _e("Wild Card Redirect",'wsr') ?></option>
105
- </select>
106
-
107
- *
108
- </td>
109
- </tr>
110
- <tr>
111
- <td class="label"><?php _e("Redirection type:",'wsr') ?></td>
112
- <td>
113
- <select size="1" name="redirect_type" id="redirect_type">
114
- <option value="301"><?php _e("301 (SEO)",'wsr') ?></option>
115
- <option value="302"><?php _e("302",'wsr') ?></option>
116
- <option value="307"><?php _e("307",'wsr') ?></option>
117
- </select>
118
-
119
- <script>
120
-
121
- function redirect_from_type_change()
122
- {
123
- if (document.getElementById('redirect_from_type').value=='Folder')
124
- {
125
- document.getElementById('redirect_from_folder_settings').style.display = 'inline';
126
- document.getElementById('redirect_from').className = 'Folder_background_1';
127
- redirect_to_folder_settings_change();
128
- }
129
- else if (document.getElementById('redirect_from_type').value=='Page')
130
- {
131
- document.getElementById('redirect_from_folder_settings').style.display = 'none';
132
- document.getElementById('redirect_from').className = 'Page_background_1 regular-text';
133
- document.getElementById('redirect_from_subfolders').style.display = 'none';
134
- }
135
- else if (document.getElementById('redirect_from_type').value=='Regex')
136
- {
137
- document.getElementById('redirect_from_folder_settings').style.display = 'none';
138
- document.getElementById('redirect_from').className = 'Regex_background_1';
139
- document.getElementById('redirect_from_subfolders').style.display = 'none';
140
- }
141
-
142
- check_redirect_from();
143
- }
144
-
145
-
146
- function redirect_to_type_change()
147
- {
148
- if (document.getElementById('redirect_to_type').value=='Folder')
149
- {
150
- document.getElementById('redirect_to_folder_settings').style.display = 'inline';
151
- document.getElementById('redirect_to').className = 'Folder_background_1';
152
- }
153
- else if (document.getElementById('redirect_to_type').value=='Page')
154
- {
155
- document.getElementById('redirect_to_folder_settings').style.display = 'none';
156
- document.getElementById('redirect_to').className = 'Page_background_1 regular-text';
157
- }
158
-
159
- check_redirect_to();
160
- }
161
-
162
- function redirect_to_folder_settings_change()
163
- {
164
- if (document.getElementById('redirect_from_folder_settings').value=='1')
165
- {
166
- document.getElementById('redirect_from_subfolders').style.display = 'none';
167
- }else
168
- {
169
- document.getElementById('redirect_from_subfolders').style.display = 'inline';
170
- }
171
- }
172
-
173
- function check_redirect_from()
174
- {
175
-
176
- var rfrom = document.getElementById('redirect_from').value;
177
-
178
- if(rfrom!=''){
179
- var cr= rfrom .substring(rfrom.length -1);
180
- if(document.getElementById('redirect_from_type').value=='Folder' && cr!='/' )
181
- document.getElementById('redirect_from').value = rfrom + '/';
182
- }
183
- }
184
-
185
-
186
- function check_redirect_to()
187
- {
188
-
189
- var rto = document.getElementById('redirect_to').value;
190
-
191
-
192
- if(rto!=''){
193
- var cr= rto.substring(rto.length -1);
194
- if(document.getElementById('redirect_to_type').value=='Folder' && cr!='/' )
195
- document.getElementById('redirect_to').value = rto + '/';
196
- }
197
- }
198
-
199
- <?php
200
-
201
- if($redirect_type!='')
202
- echo "document.getElementById('redirect_type').value='$redirect_type';";
203
-
204
- if($redirect_from_type!='')
205
- echo "document.getElementById('redirect_from_type').value='$redirect_from_type';";
206
-
207
- if($redirect_from_folder_settings!='' && $redirect_from_type=='Folder' )
208
- echo "document.getElementById('redirect_from_folder_settings').value='$redirect_from_folder_settings';";
209
-
210
- if($redirect_from_subfolders!='' && $redirect_from_type=='Folder' )
211
- echo "document.getElementById('redirect_from_subfolders').value='$redirect_from_subfolders';";
212
-
213
- if($redirect_to_type!='')
214
- echo "document.getElementById('redirect_to_type').value='$redirect_to_type';";
215
-
216
- if($redirect_to_folder_settings!='' && $redirect_to_type=='Folder' )
217
- echo "document.getElementById('redirect_to_folder_settings').value='$redirect_to_folder_settings';";
218
-
219
- if($enabled!='')
220
- echo "document.getElementById('enabled').value='$enabled';";
221
-
222
-
223
-
224
- if($util->get('page404')!='')
225
- echo "document.getElementById('rfrom_div').style.display = 'none';";
226
-
227
-
228
-
229
- ?>
230
-
231
- redirect_from_type_change();
232
- redirect_to_type_change();
233
-
234
- </script>
235
-
236
-
237
- </td>
238
- </tr>
239
- </table>
240
- <br/>
241
-
242
- <input type="hidden" id="_wpnonce" name="_wpnonce" value="<?php echo $nonce = wp_create_nonce('seoredirection'); ?>" />
243
- <input type="hidden" id="edit" name="edit" value="<?php echo intval($util->get('edit'))?>">
244
-
245
- <?php echo "<b>Note</b>:".__(" When you move your site to another domain, the new domain name will be reflected to all links automatically.","wsr"); ?>
246
- <br/><br/>
247
- <?php
248
-
249
- if($util->get('add')!='')
250
- echo '<input class="button-primary" type="submit" value="'.__("Add New","wsr").'" name="add_new">';
251
- else if($util->get('edit')!='')
252
- echo '<input class="button-primary" type="submit" value="'.__("Update","wsr").'" name="edit_exist">';
253
-
254
- ?>
255
- <input onclick="window.location='<?php echo $util->WPSR_get_current_parameters(array('add','edit'));?>';" class="button-primary" type="button" value="<?php _e("Cancel",'wsr') ?>" name="cancel">
256
- <br/></form>
257
-
258
- <script>
259
-
260
- function check_from()
261
- {
262
- document.getElementById('redirect_from').value = decodeURIComponent(document.getElementById('redirect_from').value)
263
- document.getElementById('redirect_to').value = decodeURIComponent(document.getElementById('redirect_to').value)
264
- var rfrom=document.getElementById('redirect_from').value;
265
- var rto=document.getElementById('redirect_to').value;
266
-
267
- if( rfrom=='')
268
- {
269
- alert("<?php _e("You must input the 'Redirect From' URL","wsr") ?>");
270
- document.getElementById('redirect_from').focus();
271
- return false;
272
- }
273
-
274
-
275
- if( rto=='')
276
- {
277
- alert("<?php _e("You must input the 'Redirect To' URL","wsr") ?>");
278
-
279
- document.getElementById('redirect_to').focus();
280
- return false;
281
- }
282
-
283
- <?php if($util->get('add')!='')
284
- {?>
285
- if(!(rto.indexOf('://')!=-1 && rto.substr(0,1)!='/'))
286
- {
287
- alert("<?php _e("Invalid redirect target URL!","wsr") ?>");
288
- document.getElementById('redirect_to').focus();
289
- return false;
290
- }
291
- <?php }?>
292
-
293
- return true;
294
- }
295
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
options/option_page_custome_redirection_list.php CHANGED
@@ -68,7 +68,7 @@ $redirect_to = isset($redirect_to) ? $redirect_to : '';
68
 
69
  function go_search() {
70
  <?php
71
- isset($_REQUEST['tab']) ? $url_op = $_REQUEST['tab'] : $url_op = "";
72
  ?>
73
  var sword = document.getElementById('search').value;
74
  if (sword != '') {
@@ -87,11 +87,11 @@ isset($_REQUEST['tab']) ? $url_op = $_REQUEST['tab'] : $url_op = "";
87
  }
88
 
89
  </script>
90
- <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
91
  <div class="modal-dialog" role="document">
92
  <div class="modal-content">
93
  <div class="modal-header">
94
- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
95
  <h4 class="modal-title" id="myModalLabel">Add Custom Redirects</h4>
96
  </div>
97
  <div class="modal-body">
@@ -204,7 +204,8 @@ if ($util->get('page404') != '')
204
  <input type="hidden" id="add_new" name="add_new" value="">
205
  <input type="hidden" id="edit_exist" name="edit_exist" value="">
206
  <input type="hidden" id="action" name="action" value="customAddUpdate">
207
- <input data-dismiss="modal" aria-label="Close" class="button-primary " type="button" value="<?php _e("Cancel", 'wsr') ?>" name="cancel">
 
208
 
209
 
210
  </div>
@@ -296,9 +297,9 @@ if ($util->get('search') != '') {
296
  $grid->set_filter("url_type=1 and (redirect_from like '%%$search%%' or redirect_to like '%%$search%%' or redirect_type like '%%$search%%' )");
297
  }
298
 
299
- $grid->add_php_col(' echo "<input type=\'checkbox\' class=\'chkthis\' name=\'redirect_id[]\' value=\'{$db_ID}\' />";',"<input type='checkbox' class='chkall' name='check_all' />");
300
- $grid->add_php_col(' echo "<div class=\'{$db_redirect_from_type}_background_{$db_enabled}\'><a target=\'_blank\' href=\'" . WPSR_make_absolute_url(esc_url($db_redirect_from)) ."\'>{$db_redirect_from}</a></div>" ;', __('Redirect from ', 'wsr'));
301
- $grid->add_php_col(' echo "<div class=\'{$db_redirect_to_type}_background_{$db_enabled}\'><a target=\'_blank\' href=\'" . WPSR_make_absolute_url(esc_url($db_redirect_to)) ."\'>{$db_redirect_to}</a></div>"; ', __('Redirect to ', 'wsr'));
302
  $grid->add_data_col('redirect_type', __('Type', 'wsr'));
303
 
304
 
68
 
69
  function go_search() {
70
  <?php
71
+ isset($_REQUEST['tab']) ? $url_op = WPSR_sanitize_text_or_array_field($_REQUEST['tab']) : $url_op = "";
72
  ?>
73
  var sword = document.getElementById('search').value;
74
  if (sword != '') {
87
  }
88
 
89
  </script>
90
+ <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" >
91
  <div class="modal-dialog" role="document">
92
  <div class="modal-content">
93
  <div class="modal-header">
94
+ <button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="$('#myModal').modal('hide')"><span aria-hidden="true">&times;</span></button>
95
  <h4 class="modal-title" id="myModalLabel">Add Custom Redirects</h4>
96
  </div>
97
  <div class="modal-body">
204
  <input type="hidden" id="add_new" name="add_new" value="">
205
  <input type="hidden" id="edit_exist" name="edit_exist" value="">
206
  <input type="hidden" id="action" name="action" value="customAddUpdate">
207
+
208
+ <button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="$('#myModal').modal('hide')"><?php _e("Close", 'wsr') ?></button>
209
 
210
 
211
  </div>
297
  $grid->set_filter("url_type=1 and (redirect_from like '%%$search%%' or redirect_to like '%%$search%%' or redirect_type like '%%$search%%' )");
298
  }
299
 
300
+ $grid->add_php_col("<input type='checkbox' class='chkthis' name='redirect_id[]' value='DB_ID' />","<input type='checkbox' class='chkall' name='check_all' />");
301
+ $grid->add_php_col( "<div class='db_redirect_from_type_background_db_enabled'><a target='_blank' href='db_redirect_from_url'>db_redirect_from</a></div>" , __('Redirect from ', 'wsr'));
302
+ $grid->add_php_col("<div class='db_redirect_to_type_background_db_enabled'><a target='_blank' href='db_redirect_to_url'>db_redirect_to</a></div>", __('Redirect to ', 'wsr'));
303
  $grid->add_data_col('redirect_type', __('Type', 'wsr'));
304
 
305
 
options/option_page_goptions.php CHANGED
@@ -4,7 +4,7 @@ global $util;
4
 
5
  $nonce="";
6
  if(isset($_REQUEST['_wpnonce']))
7
- $nonce = $_REQUEST['_wpnonce'];
8
 
9
  if(isset($_POST) && wp_verify_nonce( $nonce, 'seoredirection' ) ){
10
  if($util->post('reset_all_options')!='')
4
 
5
  $nonce="";
6
  if(isset($_REQUEST['_wpnonce']))
7
+ $nonce = sanitize_text_field($_REQUEST['_wpnonce']);
8
 
9
  if(isset($_POST) && wp_verify_nonce( $nonce, 'seoredirection' ) ){
10
  if($util->post('reset_all_options')!='')
options/option_page_history.php CHANGED
@@ -95,11 +95,11 @@ var sword = document.getElementById('search').value;
95
  $grid->set_col_attr(6, 'width', '120px', 'header');
96
  $grid->set_col_attr(7, 'width', '50px', 'header');
97
 
98
- $grid->add_php_col('echo date(\'Y-n-j\',strtotime($db_ctime)) . \'<br/>\' . date(\'H:i:s\',strtotime($db_ctime)); ',__('Time','wsr'));
99
 
100
- $grid->add_php_col(' echo "<div class=\'arrow_from\'><a target=\'_blank\' href=\'" . WPSR_make_absolute_url(esc_url($db_rfrom)) ."\'>" .SR_cut_string(esc_url($db_rfrom),0,120) ."</a></div><div class=\'arrow_to\'><a target=\'_blank\' href=\'" . WPSR_make_absolute_url(esc_url($db_rto)) ."\'>" .SR_cut_string(esc_url($db_rto),0,120) ."</a></div>" ;',__('Redirection','wsr'));
101
  $grid->add_data_col('rtype','Type');
102
- $grid->add_php_col('if($db_referrer !="") echo "<a target=\'_blank\' title=\'$db_referrer\' href=\'$db_referrer\'><span class=\'link\'></span></a>" ;',__('Ref','wsr'));
103
 
104
 
105
 
@@ -111,17 +111,13 @@ var sword = document.getElementById('search').value;
111
  $grid->add_html_col('<a target="_blank" href="https://tools.keycdn.com/geo?host={db_ip}">{db_ip}</a>',__('IP','wsr'));
112
  }else{
113
 
114
- $grid->add_php_col('echo preg_replace(\'/([0-9]+\\.[0-9]+\\.[0-9]+)\\.[0-9]+/\', \'\\1.***\', $db_ip); ',__('IP','wsr'));
115
  }
116
 
117
 
118
  $grid->add_html_col('{db_os}<br/>{db_browser}',__('Agent','wsr'));
119
 
120
- $grid->add_php_col('
121
- if($db_rsrc==\'404\') echo $db_rsrc;
122
- if($db_rsrc==\'Custom\') echo "<a target=\'blank\' href=\'?page=wp-seo-redirection.php&edit=$db_rID\'>{$db_rsrc}</a>";
123
- if($db_rsrc==\'Post\') echo "<a target=\'blank\' href=\'post.php?action=edit&post=$db_postID\'>{$db_rsrc}</a>";
124
- ',__('Class','wsr'));
125
 
126
 
127
  $grid->run();
95
  $grid->set_col_attr(6, 'width', '120px', 'header');
96
  $grid->set_col_attr(7, 'width', '50px', 'header');
97
 
98
+ $grid->add_php_col('db_date_y<br/>db_date_h',__('Time','wsr'));
99
 
100
+ $grid->add_php_col("<div class='arrow_from'><a target='_blank' href='db_rfrom_url'>db_rfrom</a></div><div class='arrow_to'><a target='_blank' href='db_rto_url'>db_rto</a></div>",__('Redirection','wsr'));
101
  $grid->add_data_col('rtype','Type');
102
+ $grid->add_php_col('db_referrer_var',__('Ref','wsr'));
103
 
104
 
105
 
111
  $grid->add_html_col('<a target="_blank" href="https://tools.keycdn.com/geo?host={db_ip}">{db_ip}</a>',__('IP','wsr'));
112
  }else{
113
 
114
+ $grid->add_php_col('db_ip',__('IP','wsr'));
115
  }
116
 
117
 
118
  $grid->add_html_col('{db_os}<br/>{db_browser}',__('Agent','wsr'));
119
 
120
+ $grid->add_php_col('db_rsrc_custom',__('Class','wsr'));
 
 
 
 
121
 
122
 
123
  $grid->run();
options/option_page_post_redirection_list.php CHANGED
@@ -28,7 +28,7 @@ $table_name = $table_prefix . 'WP_SEO_Redirection';
28
 
29
  function go_search(){
30
  <?php
31
- isset($_REQUEST['tab'])?$url_op=$_REQUEST['tab']:$url_op="";
32
  ?>
33
  var sword = document.getElementById('search').value;
34
  if(sword!=''){
@@ -102,8 +102,8 @@ var sword = document.getElementById('search').value;
102
 
103
  //$grid->add_data_col('redirect_from','Redirect from');
104
  //$grid->add_data_col('redirect_to','Redirect to');
105
- $grid->add_php_col(' echo "<div class=\'{$db_redirect_from_type}_background_{$db_enabled}\'><a target=\'_blank\' href=\'" . WPSR_make_absolute_url($db_redirect_from) ."\'>{$db_redirect_from}</a></div>" ;',__('Redirect from ','wsr'));
106
- $grid->add_php_col(' echo "<div class=\'{$db_redirect_to_type}_background_{$db_enabled}\'><a target=\'_blank\' href=\'" . WPSR_make_absolute_url($db_redirect_to) ."\'>{$db_redirect_to}</a></div>"; ',__('Redirect to ','wsr'));
107
  $grid->add_data_col('redirect_type',__('Type','wsr'));
108
  $grid->add_data_col('hits',__('Hits','wsr'));
109
  $grid->add_data_col('access_date',__('Last Access','wsr'));
28
 
29
  function go_search(){
30
  <?php
31
+ isset($_REQUEST['tab'])?$url_op= sanitize_text_field($_REQUEST['tab']) :$url_op="";
32
  ?>
33
  var sword = document.getElementById('search').value;
34
  if(sword!=''){
102
 
103
  //$grid->add_data_col('redirect_from','Redirect from');
104
  //$grid->add_data_col('redirect_to','Redirect to');
105
+ $grid->add_php_col( "<div class='db_redirect_from_type_background_db_enabled'><a target='_blank' href='db_redirect_from_url'>db_redirect_from</a></div>",__('Redirect from ','wsr'));
106
+ $grid->add_php_col("<div class='db_redirect_to_type_background_db_enabled'><a target='_blank' href='db_redirect_to_url'>db_redirect_to</a></div>",__('Redirect to ','wsr'));
107
  $grid->add_data_col('redirect_type',__('Type','wsr'));
108
  $grid->add_data_col('hits',__('Hits','wsr'));
109
  $grid->add_data_col('access_date',__('Last Access','wsr'));
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://www.clogica.com/donations.htm
4
  Tags: post, admin, seo, pages, manage, 301, 404, soft 404, redirect, permalink, redirection, redirection, https, automatic redirection, htaccess, ssl, https redirection, ssl certificate, secure page, secure, force ssl, force https, seo redirection, post redirect, 404 to 301
5
  Requires at least: 4.1
6
  Tested up to: 5.8
7
- Stable tag: 7.2
8
 
9
  SEO Redirection is a powerful redirect manager to manage 301 redirects without requiring knowledge of Apache .htaccess files.
10
 
@@ -75,13 +75,16 @@ Yes, here is the plugin full knowledge base http://www.clogica.com/kb/
75
  == Upgrade Notice ==
76
 
77
 
 
 
 
 
78
  = 7.2 =
79
  * Bug fixing (solving security issues) - part 2
80
 
81
 
82
  = 7.1 =
83
- * Bug fixing (solving security issues)
84
-
85
 
86
 
87
  = 6.4 =
4
  Tags: post, admin, seo, pages, manage, 301, 404, soft 404, redirect, permalink, redirection, redirection, https, automatic redirection, htaccess, ssl, https redirection, ssl certificate, secure page, secure, force ssl, force https, seo redirection, post redirect, 404 to 301
5
  Requires at least: 4.1
6
  Tested up to: 5.8
7
+ Stable tag: 7.3
8
 
9
  SEO Redirection is a powerful redirect manager to manage 301 redirects without requiring knowledge of Apache .htaccess files.
10
 
75
  == Upgrade Notice ==
76
 
77
 
78
+ = 7.3 =
79
+ * Bug fixing (solving datatable issues)
80
+
81
+
82
  = 7.2 =
83
  * Bug fixing (solving security issues) - part 2
84
 
85
 
86
  = 7.1 =
87
+ * Bug fixing (solving security issues) - part 1
 
88
 
89
 
90
  = 6.4 =
seo-redirection.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: SEO Redirection
4
  Plugin URI: http://www.clogica.com/product/seo-redirection-premium-wordpress-plugin
5
  Description: By this plugin you can manage all your website redirection types easily.
6
  Author: Fakhri Alsadi
7
- Version: 7.2
8
  Author URI: http://www.clogica.com
9
  Text Domain: wsr
10
  */
@@ -565,7 +565,7 @@ function WPSR_customAddUpdate_callback()
565
  parse_str($_POST['formData'], $_POST);
566
  $nonce = "";
567
  if (isset($_POST['_wpnonce']))
568
- $nonce = $_POST['_wpnonce'];
569
  $data = array();
570
  $data['error_string'] = array();
571
  $data['inputerror'] = array();
@@ -784,7 +784,7 @@ function WPSR_importFromRedirection_callback()
784
  {
785
  if(isset($_REQUEST['offset']))
786
  {
787
- $offset = $_REQUEST['offset'];
788
  $count = 0;
789
  $table_name = $wpdb->prefix . 'WP_SEO_Redirection';
790
  $table_name_404 = $wpdb->prefix . 'WP_SEO_404_links';
@@ -903,7 +903,7 @@ function WPSR_options_menu()
903
  $total_404_errors = (WPSR_Get_total_404() > 10) ? __('You have', 'wsr') . ' <b style="color:red; background-color:yellow; padding:3px;"> too many </b>' . __(' broken link (404 links)', 'wsr') . ', <br>' : '';
904
 
905
 
906
- echo '<div class="wrap"><h2>' . __("SEO Redirection Free", 'wsr') . '</h2><h4>' . __('Upgrade to', 'wsr') . ' <a target="_blank" onclick="swal.clickConfirm();" href="http://www.clogica.com/product/seo-redirection-premium-wordpress-plugin">' . __("Pro Version", "wsr") . '</a>' . __(" to manage 404 errors and empower your site SEO", "wsr") . '&nbsp;&nbsp;&nbsp;<strong style="color:yellow; background-color:red; padding:3px;"> ' . __("NOW 50% OFF ", 'wsr') . '</strong></h4>';
907
 
908
  if ($total_404_errors != '') {
909
  ?>
4
  Plugin URI: http://www.clogica.com/product/seo-redirection-premium-wordpress-plugin
5
  Description: By this plugin you can manage all your website redirection types easily.
6
  Author: Fakhri Alsadi
7
+ Version: 7.3
8
  Author URI: http://www.clogica.com
9
  Text Domain: wsr
10
  */
565
  parse_str($_POST['formData'], $_POST);
566
  $nonce = "";
567
  if (isset($_POST['_wpnonce']))
568
+ $nonce = WPSR_sanitize_text_or_array_field($_POST['_wpnonce']);
569
  $data = array();
570
  $data['error_string'] = array();
571
  $data['inputerror'] = array();
784
  {
785
  if(isset($_REQUEST['offset']))
786
  {
787
+ $offset = WPSR_sanitize_text_or_array_field($_REQUEST['offset']);
788
  $count = 0;
789
  $table_name = $wpdb->prefix . 'WP_SEO_Redirection';
790
  $table_name_404 = $wpdb->prefix . 'WP_SEO_404_links';
903
  $total_404_errors = (WPSR_Get_total_404() > 10) ? __('You have', 'wsr') . ' <b style="color:red; background-color:yellow; padding:3px;"> too many </b>' . __(' broken link (404 links)', 'wsr') . ', <br>' : '';
904
 
905
 
906
+ echo '<div class="wrap"><h2>' . __("SEO Redirection Free", 'wsr') . '</h2><b>' . __('Upgrade to', 'wsr') . ' <a target="_blank" onclick="swal.clickConfirm();" href="http://www.clogica.com/product/seo-redirection-premium-wordpress-plugin">' . __("Pro Version", "wsr") . '</a>' . __(" to manage 404 errors and empower your site SEO", "wsr") . '&nbsp;&nbsp;&nbsp;<strong style="color:yellow; background-color:red; padding:3px;"> ' . __("NOW 50% OFF ", 'wsr') . '</strong></b><br/><br/>';
907
 
908
  if ($total_404_errors != '') {
909
  ?>