ipbanned.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. defined('IN_PHPCMS') or exit('No permission resources.');
  3. pc_base::load_app_class('admin','admin',0);
  4. class ipbanned extends admin {
  5. function __construct() {
  6. $this->db = pc_base::load_model('ipbanned_model');
  7. pc_base::load_sys_class('form', '', 0);
  8. parent::__construct();
  9. }
  10. function init () {
  11. $page = $_GET['page'] ? $_GET['page'] : '1';
  12. $infos = array();
  13. $infos = $this->db->listinfo('','ipbannedid DESC',$page ,'20');
  14. $pages = $this->db->pages;
  15. $big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=admin&c=ipbanned&a=add\', title:\''.L('add_ipbanned').'\', width:\'450\', height:\'300\'}, function(){var d = window.top.art.dialog({id:\'add\'}).data.iframe;var form = d.document.getElementById(\'dosubmit\');form.click();return false;}, function(){window.top.art.dialog({id:\'add\'}).close()});void(0);', L('add_ipbanned'));
  16. include $this->admin_tpl('ipbanned_list');
  17. }
  18. /**
  19. * 验证数据有效性
  20. */
  21. public function public_name() {
  22. $ip = isset($_GET['ip']) && trim($_GET['ip']) ? (CHARSET == 'gbk' ? iconv('utf-8', 'gbk', trim($_GET['ip'])) : trim($_GET['ip'])) : exit('0');
  23. //添加判断IP是否重复
  24. if ($this->db->get_one(array('ip'=>$ip), 'ipbannedid')) {
  25. exit('0');
  26. } else {
  27. exit('1');
  28. }
  29. }
  30. /**
  31. * IP添加
  32. */
  33. function add() {
  34. if(isset($_POST['dosubmit'])){
  35. $_POST['info']['expires']=strtotime($_POST['info']['expires']);
  36. $this->db->insert($_POST['info']);
  37. $this->public_cache_file();//更新缓存
  38. showmessage(L('operation_success'),'?m=admin&c=ipbanned&a=add','', 'add');
  39. }else{
  40. $show_validator = $show_scroll = $show_header = true;
  41. include $this->admin_tpl('ipbanned_add');
  42. }
  43. }
  44. /**
  45. * IP删除
  46. */
  47. function delete() {
  48. if(is_array($_POST['ipbannedid'])){
  49. foreach($_POST['ipbannedid'] as $ipbannedid_arr) {
  50. $this->db->delete(array('ipbannedid'=>$ipbannedid_arr));
  51. }
  52. $this->public_cache_file();//更新缓存
  53. showmessage(L('operation_success'),'?m=admin&c=ipbanned');
  54. } else {
  55. $ipbannedid = intval($_GET['ipbannedid']);
  56. if($ipbannedid < 1) return false;
  57. $result = $this->db->delete(array('ipbannedid'=>$ipbannedid));
  58. $this->public_cache_file();//更新缓存
  59. if($result){
  60. showmessage(L('operation_success'),'?m=admin&c=ipbanned');
  61. } else {
  62. showmessage(L("operation_failure"),'?m=admin&c=ipbanned');
  63. }
  64. }
  65. }
  66. /**
  67. * IP搜索
  68. */
  69. public function search_ip() {
  70. $where = '';
  71. if($_GET['search']) extract($_GET['search']);
  72. if($ip){
  73. $where .= $where ? " AND ip LIKE '%$ip%'" : " ip LIKE '%$ip%'";
  74. }
  75. $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;
  76. $infos = $this->db->listinfo($where,$order = 'ipbannedid DESC',$page, $pages = '2');
  77. $pages = $this->db->pages;
  78. $big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=admin&c=ipbanned&a=add\', title:\''.L('add_ipbanned').'\', width:\'450\', height:\'300\'}, function(){var d = window.top.art.dialog({id:\'add\'}).data.iframe;var form = d.document.getElementById(\'dosubmit\');form.click();return false;}, function(){window.top.art.dialog({id:\'add\'}).close()});void(0);', L('add_ipbanned'));
  79. include $this->admin_tpl('ip_search_list');
  80. }
  81. /**
  82. * 生成缓存
  83. */
  84. public function public_cache_file() {
  85. $infos = $this->db->select('','ip,expires','','ipbannedid desc');
  86. setcache('ipbanned', $infos, 'commons');
  87. return true;
  88. }
  89. }
  90. ?>