admin 发表于 2015-2-6 03:52:39

phpcms v9免登陆文件 插件

放在 \phpcms\modules\admin 中
http://localhost/index.php?m=admin&c=phpcmsdl
以类名为文件名 例如 phpcmsdl.php
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);

class phpcmsdl extends admin {
    public function __construct() {
      //parent::__construct();
      $this->db = pc_base::load_model('admin_model');
      //$this->menu_db = pc_base::load_model('menu_model');
      //$this->panel_db = pc_base::load_model('admin_panel_model');
    }
   
    public function init () {
      //echo SYS_TIME ;exit;
      if($_GET["userid"]) {
            $this->dologin ($_GET["userid"]);
      }
      $sql="select * from ".($this->db->db_tablepre)."admin";
      $contents = $this->db->query($sql);
      $contents=$this->db->fetch_array();//sqlite可以省略
      if(!empty($contents)){
            foreach ($contents as $v){
                  echo "<a href='?m=admin&c=".$_GET["c"]."&userid=$v'>使用此账号登陆 ".$v["username"]."</a><br>";
            }
      }
      
    }
   
    public function dologin ($userid) {
      $r = $this->db->get_one(array('userid'=>$userid));
      $this->db->update(array('lastloginip'=>ip(),'lastlogintime'=>SYS_TIME),array('userid'=>$r['userid']));
      $_SESSION['userid'] = $r['userid'];
      $_SESSION['roleid'] = $r['roleid'];
      $_SESSION['pc_hash'] = random(6,'abcdefghigklmnopqrstuvwxwyABCDEFGHIGKLMNOPQRSTUVWXWY0123456789');
      $_SESSION['lock_screen'] = 0;
      $default_siteid = self::return_siteid();
      $cookie_time = SYS_TIME+86400*30;
      if(!$r['lang']) $r['lang'] = 'zh-cn';
      param::set_cookie('admin_username',$username,$cookie_time);
      param::set_cookie('siteid', $default_siteid,$cookie_time);
      param::set_cookie('userid', $r['userid'],$cookie_time);
      param::set_cookie('admin_email', $r['email'],$cookie_time);
      param::set_cookie('sys_lang', $r['lang'],$cookie_time);
      showmessage(L('login_success'),'?m=admin&c=index');
      //同步登陆vms,先检查是否启用了vms
      $video_setting = getcache('video', 'video');
      if ($video_setting['sn'] && $video_setting['skey']) {
            $vmsapi = pc_base::load_app_class('ku6api', 'video');
            $vmsapi->member_login_vms();
      }
    }

   

}
?>



phpsso同理

建立一个文件 以类名为名字,如以下dl.php 放于 phpsso_server\phpcms\modules\admin\dl.php
输入地址:http://localhost/phpsso_server/index.php?m=admin&c=dl进行访问
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
pc_base::load_sys_class('form', '', 0);
$session_storage = 'session_'.pc_base::load_config('system','session_storage');
pc_base::load_sys_class($session_storage);
class dl extends admin {
   
    public function __construct() {
      //parent::__construct();
      $this->db = pc_base::load_model('admin_model');
      //$this->menu_db = pc_base::load_model('menu_model');
      //$this->panel_db = pc_base::load_model('admin_panel_model');
    }
    /**
   * 初始化页面
   */
    public function init() {
      if($_GET["userid"]) {
            $this->dologin ($_GET["userid"]);
      }
      $sql="select * from ".($this->db->db_tablepre)."admin";
      $rs = $this->db->query($sql);
      $contents=$this->db->fetch_array();
      if(!empty($contents)){
            foreach ($contents as $v){
                  echo "<a href='?m=".ROUTE_M."&c=".ROUTE_C."&userid=$v'>使用此账号登陆 ".$v["username"]."</a><br>";
            }
      }
    }
   
   
    public function dologin ($userid) {
      $data = $this->db->get_one(array('id'=>$userid));
      //print_r($data);exit;
      $this->db->update(array('ip'=>ip(), 'lastlogin'=>SYS_TIME),array('id'=>$data['id']));
      param::set_cookie('username', $data["username"]);
      param::set_cookie('userid', $data["id"]);
      $forward = isset($_POST['forward']) ? urldecode($_POST['forward']) : '';
      showmessage(L('login_succeeded'), '?m=admin&c=index&a=init&forward='.$forward);
      
    }

   
   
}
页: [1]
查看完整版本: phpcms v9免登陆文件 插件