Server : nginx/1.22.1
System : Linux iZwz9daxib3w3i063fw434Z 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64
User : www ( 1000)
PHP Version : 7.2.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/www.jkmold.com/phpcms/modules/admin/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/www.jkmold.com/phpcms/modules/admin/urlrule.php
<?php

defined('IN_PHPCMS') or exit('No permission resources.');

pc_base::load_app_class('admin','admin',0);

pc_base::load_sys_class('form','',0);



class urlrule extends admin {

	function __construct() {

		parent::__construct();

		$this->db = pc_base::load_model('urlrule_model');

		$this->module_db = pc_base::load_model('module_model');

	}

	

	function init () {

		$page = intval($_GET['page']);

		$infos = $this->db->listinfo('','',$page);

		$pages = $this->db->pages;

		$big_menu = array('javascript:window.top.art.dialog({id:\'add\',iframe:\'?m=admin&c=urlrule&a=add\', title:\''.L('add_urlrule').'\', width:\'750\', height:\'300\', lock:true}, 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_urlrule'));

		$this->public_cache_urlrule();

		include $this->admin_tpl('urlrule_list');

	}

	function add() {

		if(isset($_POST['dosubmit'])) {

			$_POST['info']['urlrule'] = rtrim(trim($_POST['info']['urlrule']),'.php');

			$_POST['info']['urlrule'] = $this->url_replace($_POST['info']['urlrule']);

			if($this->url_ifok($_POST['info']['urlrule'])==false){

				showmessage('url规则里含有非法php字符');

			}

			$this->db->insert($_POST['info']);

			$this->public_cache_urlrule();

			showmessage(L('add_success'),'','','add');

		} else {

			$show_validator = $show_header = '';

			$modules_arr = $this->module_db->select('','module,name');

			

			$modules = array();

			foreach ($modules_arr as $r) {

				$modules[$r['module']] = $r['name'];

			}

		

			include $this->admin_tpl('urlrule_add');

		}

	}

	function delete() {

		$_GET['urlruleid'] = intval($_GET['urlruleid']);

		$this->db->delete(array('urlruleid'=>$_GET['urlruleid']));

		$this->public_cache_urlrule();

		showmessage(L('operation_success'),HTTP_REFERER);

	}

	

	function edit() {

		if(isset($_POST['dosubmit'])) {

			$urlruleid = intval($_POST['urlruleid']);

			$_POST['info']['urlrule'] = rtrim(trim($_POST['info']['urlrule']),'.php');

			$_POST['info']['urlrule'] = $this->url_replace($_POST['info']['urlrule']);

			if($this->url_ifok($_POST['info']['urlrule'])==false){

				showmessage('url规则里含有非法php字符');

			}			

			$this->db->update($_POST['info'],array('urlruleid'=>$urlruleid));

			$this->public_cache_urlrule();

			showmessage(L('update_success'),'','','edit');

		} else {

			$show_validator = $show_header = '';

			$urlruleid = $_GET['urlruleid'];

			$r = $this->db->get_one(array('urlruleid'=>$urlruleid));

			extract($r);

			$modules_arr = $this->module_db->select('','module,name');

			

			$modules = array();

			foreach ($modules_arr as $r) {

				$modules[$r['module']] = $r['name'];

			}

			include $this->admin_tpl('urlrule_edit');

		}

	}

	/**

	 * 更新URL规则

	 */

	public function public_cache_urlrule() {

		$datas = $this->db->select('','*','','','','urlruleid');

		$basic_data = array();

		foreach($datas as $roleid=>$r) {

			$basic_data[$roleid] = $r['urlrule'];;

		}

		setcache('urlrules_detail',$datas,'commons');

		setcache('urlrules',$basic_data,'commons');

	}

	/*

	*url规则替换

	**/

	public function url_replace($url){

		$urldb = explode("|",$url);

		foreach($urldb as $key=>$value){

			if(strpos($value, "index.php") === 0){

				$value = str_replace('index.php','',$value);

				$value = str_replace('.php','',$value);

				$value = "index.php".$value;

			}else{

				$value = str_replace('.php','',$value);

			}

			$urldb[$key]=$value;

		}

		return implode("|",$urldb);

	}

	/*

	*url规则 判断。

	**/

	public function url_ifok($url){

		$urldb = explode("|",$url);

		foreach($urldb as $key=>$value){

			if(strpos($value, "index.php") === 0){

				$value = substr($value,'9');

			}

			if( stripos($value, "php") !== false){

				return false;

			}

		}

		return true;

	}

}

?>