去评论
dz插件网

克米设计手机模板源代码原始件开源代码分享

浅生
2021/05/13 11:36:03
  1. <?php
  2. if(!defined('IN_DISCUZ')) {
  3.         exit('Access Denied');
  4. }
  5. function comiis_portal_load_data($plugin_id, $key){
  6.         global $_G, $comiis_portal_info, $comiis_portal_time; // 外部数据变量
  7.         $re_xml_data = $re_system_data = $re_url_data = array();
  8.         if(strlen($plugin_id) < 5 || !preg_match('/^[\w\_]+$/', $plugin_id)){
  9.                 return false;
  10.         }
  11.         /*         KEY  */
  12.         if(strlen($key) != 18){
  13.                 return false;
  14.         }
  15.         $re_system_data = array(
  16.                 'siteuniqueid' => ($_G['setting']['siteuniqueid'] ? $_G['setting']['siteuniqueid'] : C::t('common_setting')->fetch('siteuniqueid')),
  17.                 'qq' => $_G['setting']['site_qq'],
  18.                 'mail' => $_G['setting']['adminemail'],
  19.         );
  20.         $h = 0;
  21.         if(!file_exists(DISCUZ_ROOT.'./source/plugin/'.$plugin_id.'/comiis_info/comiis_info.php')){
  22.                 return false;
  23.         }else{
  24.                 include DISCUZ_ROOT.'./source/plugin/'.$plugin_id.'/comiis_info/comiis_info.php';
  25.         }
  26.         if(file_exists(DISCUZ_ROOT.'./source/plugin/'.$plugin_id.'/comiis_info/comiis_md5file.php')){ // 文件是否存在
  27.                 include DISCUZ_ROOT.'./source/plugin/'.$plugin_id.'/comiis_info/comiis_md5file.php';
  28.                 if($comiis_portal_time['dateline'] - 864000 < time()){
  29.                         $h = 1;
  30.                 }
  31.                 if(md5($comiis_portal_time['dateline'].md5($plugin_id).md5($comiis_portal_time['dateline']).$key.$_G['setting']['siteuniqueid'].'comiis_v2') != $comiis_portal_time['md5']){
  32.                         $h = 1;
  33.                 }
  34.         }else{
  35.                 $h = 1;
  36.         }
  37.         if($_GET['comiis_up_sn'] === 'yes'){
  38.                 $h = 1;
  39.         }
  40.         if($h == 1){
  41.                 if($i = @fopen(DISCUZ_ROOT.'./source/plugin/'.$plugin_id.'/comiis_info/comiis_md5file.php', 'wb')) {
  42.                         fwrite($i, "<?php\nif(!defined('IN_DISCUZ')){exit('Access Denied');}");
  43.                         fclose($i);
  44.                 } else {
  45.                         exit('Can not write to cache files, please check directory ./source/plugin/'.$plugin_id.'/comiis_info/ .');
  46.                 }
  47.                 $comiis_url = 'http://ad'.'don.com'.'iis.com/pl'.'ugin.php?id=com'.'iis_serv'.'ice:'.'ne'.'w_serv'.'ice';
  48.                 if(!isset($_G['cache']['plugin'])) {
  49.                         loadcache('plugin');
  50.                 }
  51.                 if(file_exists(DISCUZ_ROOT.'./data/addonmd5/'.$plugin_id.'.plugin.xml')){
  52.                         require_once libfile('class/xml');
  53.                         $j = implode('', @file(DISCUZ_ROOT.'./data/addonmd5/'.$plugin_id.'.plugin.xml'));
  54.                         $re_xml_data = xml2array($j);
  55.                 }else{
  56.                         return false;
  57.                 }
  58.                 $k =  md5($comiis_portal_info['sn'].$comiis_portal_info['siteid'].$comiis_portal_info['revisionid'].$comiis_portal_info['clienturl'].$comiis_portal_info['sn'].$comiis_portal_info['siteurl'].$comiis_portal_info['sn'].$comiis_portal_info['qqid'].$comiis_portal_info['sn']);
  59.                 if($k != $comiis_portal_info['md5']){
  60.                         return false;
  61.                 }
  62.                 if(strlen($re_system_data['siteuniqueid']) >15 && strlen($comiis_portal_info['sn']) >19 && strlen($comiis_portal_info['siteid']) == 36 && $re_xml_data['Title'] == 'Discuz! Addon MD5' && $re_xml_data['SN'] == $comiis_portal_info['sn'] && $comiis_portal_info['revisionid'] == $re_xml_data['RevisionID']){
  63.                         require_once libfile('function/filesock');
  64.                         $l = time();
  65.                         $m = array(
  66.                                 'key' => $key,
  67.                                 'resn' => $re_sn,
  68.                                 'sn' => $comiis_portal_info['sn'],
  69.                                 'siteurl' => $comiis_portal_info['siteurl'],
  70.                                 'clienturl' => $comiis_portal_info['clienturl'],
  71.                                 'siteid' => $comiis_portal_info['siteid'],
  72.                                 'qqid' => $comiis_portal_info['qqid'],
  73.                                 'md5' => $comiis_portal_info['md5'],
  74.                                 'siteuniqueid' => $re_system_data['siteuniqueid'],
  75.                                 'qq' => $re_system_data['qq'],
  76.                                 'mail' => $re_system_data['mail'],
  77.                                 'app' => $re_xml_data['ID'],
  78.                                 'revisionid' => $comiis_portal_info['revisionid'],
  79.                                 'comiis_nore' => 'yes',
  80.                                 'comiis_v2' => 'yes',
  81.                                 'time' => $l,
  82.                                 'md5s' => md5($l. $comiis_portal_info['siteid']. $re_system_data['siteuniqueid']. $comiis_portal_info['siteid']. $comiis_portal_info['sn']. $re_xml_data['ID']. $comiis_portal_info['revisionid']),
  83.                         );
  84.                         ksort($m);
  85.                         $ms = '';
  86.                         foreach($m as $ks => $vs) {
  87.                                 $ms .= '&'.$ks.'='.rawurlencode($vs);
  88.                         }
  89.                         $m['md5hash'] = md5($ms);
  90.                         $n = serialize($m);
  91.                         $o = random(10);
  92.                         $p = md5($o);
  93.                         $p = md5(md5(strrev(substr($p, 0, 15))).substr($p, 8, 25).strrev(substr($p, 15)));
  94.                         $n = authcode($n, 'ENCODE', $p);
  95.                         $q = array('comiis_post_newdata' => $n, 'comiis_newrandom' => $o);
  96.                         $q = base64_encode(serialize($q));
  97.                         $r = md5($q.'comiis');
  98.                         $s = array('params' => $q, 'md5hash' => $r);
  99.                         $t = _dfsockopen($comiis_url, '', $s);
  100.                         $re_url_data = dunserialize($t);
  101.                         if($re_url_data['status'] == md5($o.'okcomiis')){
  102.                                 if($i = @fopen(DISCUZ_ROOT.'./source/plugin/'.$plugin_id.'/comiis_info/comiis_md5file.php', 'wb')) {
  103.                                         fwrite($i, "<?php\nif(!defined('IN_DISCUZ')){exit('Access Denied');}\nglobal \$comiis_portal_time;\n\$comiis_portal_time = array('dateline'=>'{$re_url_data['dateline']}', {$re_url_data['md5']});".($re_url_data['data'] ? $re_url_data['data'] : ''));
  104.                                         fclose($i);
  105.                                 }
  106.                         }
  107.                 }else{
  108.                         return false;
  109.                 }
  110.         }
  111. }