diff --git a/admin.php b/admin.php
new file mode 100644
index 0000000..aa4e909
--- /dev/null
+++ b/admin.php
@@ -0,0 +1,138 @@
+<?php
+    include_once(dirname(__FILE__)."/library/publicBase.php");
+
+    class run extends publicBase {
+        public $control_name;
+        public $control_func;
+
+        public function __construct() {
+            $this->beforecheckpara();
+            $this->checkpara();
+            $this->action();
+            $this->display();
+        }
+
+        private function beforecheckpara() {
+        }
+
+        private function checkpara() {
+            $argv = trim(trim($_GET['argv']),'/');
+            $this->control_name = 'admin';
+            $this->control_func = 'formula_list';
+
+            if (!empty($argv)) {
+                $array = explode('/', $argv);
+                if(count($array)==1){
+                    $this->control_func = $array[0]=='' ? 'home' : $array[0];
+                }else{
+                    $this->control_func = $array[1]=='' ? 'home' : $array[1];
+                }
+            }
+
+            // 还原GET
+            if (!empty($array)) {
+                unset($_GET['argv']);
+                unset($array[0]);
+                unset($array[1]);
+
+                $count = count($array);
+                for($i=1;$i<=$count/2;$i++) {
+                    $_GET[$array[$i*2]] = $array[$i*2+1];
+                }
+            }
+
+            // 如果URI带有常规传参形式,并入$_GET
+            $pos = strpos($_SERVER['REQUEST_URI'], '?');
+            if ($pos!==false) {
+                $new_uri = substr($_SERVER['REQUEST_URI'], $pos+1);
+                $new_uri_arr = explode("&", $new_uri);
+                foreach($new_uri_arr as $v) {
+                    $new_para = explode("=", $v);
+                    $_GET[$new_para[0]] = $new_para[1];
+                }
+            }
+
+            if($this->control_name == 'admin' && $this->control_func !== 'login') {
+                $is_super = false;
+                if(in_array($this->control_func, $GLOBALS['super_admin_action'])) $is_super = true;
+
+                $this->_check_login($is_super);
+            }
+        }
+
+        private function action() {
+            $control_func = empty($this->control_func) ? 'home' : $this->control_func;
+
+            // 判断控制层文件是否存在
+            $control_path = dirname(__FILE__).'/control/'.$this->control_name.'.php';
+            if (!file_exists($control_path)) {
+                die('/'.$this->control_name.'.php not exist.');
+            }
+            include_once ($control_path);
+
+            // 判断控制层方法是否存在
+            $obj = new $this->control_name;
+            ##如下根据情况传递公共变量值##################
+            if (is_array($this->para)) {
+                foreach ($this->para as $k=>$v) {
+                    $func = 'set' . $k;
+                    $obj->$func($v);
+                }
+            }
+            ##如上根据情况传递公共变量值##################
+            if (method_exists($obj, $control_func)) {
+                $res = $obj->$control_func();
+            } else {
+                die('method '.$this->control_func.' not exist.');
+            }
+
+            if ($obj->getViewFormat()=='json' && $res===false) {
+                echo urldecode($obj->getError());
+                exit;
+            }
+
+            $this->view = array_merge($this->view, $obj->getView());
+            $this->viewFormat = $obj->getViewFormat();
+            $this->viewTpl = $obj->getViewTpl();
+        }
+
+        private function display() {
+            if ($this->viewFormat=='json') {
+                $display = new DisplayJson();
+            } elseif($this->viewFormat=='string') {
+                $display = new DisplayNone();
+            } else {
+                $tpl_path = $this->viewTpl=='' ? $this->control_name.'/'.$this->control_func.'.html' : $this->viewTpl;
+                if(!file_exists(dirname(__FILE__) . '/view/templates/'.$tpl_path)) { // 判断模板是否存在
+                    die("{$tpl_path} not exist.");
+                }
+                $display = new DisplaySmarty($tpl_path);
+            }
+
+            $display->setView($this->view);
+            $display->execute();
+        }
+
+        private function _check_login($is_super = false) {
+            if ($_COOKIE['uid'] !== 0 && empty($_COOKIE['token'])) header('Location: /admin/login');
+
+            $m_admin_user = new mAdminUser();
+            $is_login = $m_admin_user->validateToken($_COOKIE['uid'], $_COOKIE['token']);
+            if (!$is_login) $this->ajax_json(false, '未登录或登录已经失效', array('code' => CODE_LOGIN_EXIPRE));
+
+            $uinfo = $m_admin_user->getAdminUserById($_COOKIE['uid']);
+            if (empty($uinfo)) $this->ajax_json(false, '用户不存在', array('code' => CODE_LOGIN_USER_NOT_EXIST));
+
+            if ($uinfo['status'] != 0) $this->ajax_json(false, '用户已被禁用');
+
+            if ($is_super && $uinfo['is_super'] != 1) $this->ajax_json(false, '你没有该权限');
+
+            $this->view['_uinfo'] = $this->para['_uinfo'] = $uinfo;
+
+            return true;
+        }
+    }
+
+    new run();
+
+
diff --git a/control/admin.php b/control/admin.php
index 7bac4f5..4487a51 100644
--- a/control/admin.php
+++ b/control/admin.php
@@ -18,7 +18,7 @@ class admin extends publicBase {
             $res = $m_admin_user->checkAdminLogin($name, $password);
             if (!$res) $this->show_message($m_admin_user->getError(), '/admin/login');
 
-            header('Location: /admin/formula_list');
+            header('Location: /');
         }
     }
 
diff --git a/index.php b/index.php
index 82aef90..491c99f 100644
--- a/index.php
+++ b/index.php
@@ -17,16 +17,14 @@
 
         private function checkpara() {
             $argv = trim(trim($_GET['argv']),'/');
-            if (empty($argv)) {
-                $this->control_name = 'index';
-                $this->control_func = 'home';
-            } else {
+            $this->control_name = 'index';
+            $this->control_func = 'home';
+
+            if (!empty($argv)) {
                 $array = explode('/', $argv);
                 if(count($array)==1){
-                    $this->control_name = 'index';
                     $this->control_func = $array[0]=='' ? 'home' : $array[0];
                 }else{
-                    $this->control_name = $array[0];
                     $this->control_func = $array[1]=='' ? 'home' : $array[1];
                 }
             }
diff --git a/view/templates/admin/include/leftmenu.html b/view/templates/admin/include/leftmenu.html
index 3e54601..7e82f32 100644
--- a/view/templates/admin/include/leftmenu.html
+++ b/view/templates/admin/include/leftmenu.html
@@ -1,6 +1,6 @@
 <b>菜单栏</b>
 <div class="input-search">
-    <a href_flag='/admin/formula_list'  href="/admin/formula_list">药方列表</a>
+    <a href_flag='/'  href="/">药方列表</a>
 </div>
 <div class="input-search">
     <a href_flag='/admin/unit_conv'  href="/admin/unit_conv">计量单位转换</a>