Пример #1
0
 public function getCardTicket()
 {
     $cachekey = "cardticket:{$this->account['acid']}";
     $cache = cache_load($cachekey);
     if (!empty($cache) && !empty($cache['ticket']) && $cache['expire'] > TIMESTAMP) {
         $this->account['card_ticket'] = $cache;
         return $cache['token'];
     }
     load()->func('communication');
     $access_token = $this->getAccessToken();
     if (is_error($access_token)) {
         return $access_token;
     }
     $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={$access_token}&type=wx_card";
     $content = ihttp_get($url);
     if (is_error($content)) {
         return error(-1, '调用接口获取微信公众号 card_ticket 失败, 错误信息: ' . $content['message']);
     }
     $result = @json_decode($content['content'], true);
     if (empty($result) || intval($result['errcode']) != 0 || $result['errmsg'] != 'ok') {
         return error(-1, '获取微信公众号 card_ticket 结果错误, 错误信息: ' . $result['errmsg']);
     }
     $record = array();
     $record['ticket'] = $result['ticket'];
     $record['expire'] = TIMESTAMP + $result['expires_in'] - 200;
     $this->account['card_ticket'] = $record;
     cache_write($cachekey, $record);
     return $record['ticket'];
 }
Пример #2
0
function setCache($cacheActionUrl, $viewData)
{
    if (!($result = checkCache($cacheActionUrl))) {
        return false;
    }
    $viewData = '<?php if(!defined("BASEAPP"))die("Invalid Access"); ?>' . "\n" . $viewData;
    cache_write(CACHE_PATH . $result['alias'] . '.php', $viewData);
}
Пример #3
0
function tagtpl_cache() {
	$relatedtag = unserialize(data_get('relatedtag'));
	if(empty($relatedtag)) $relatedtag = array();
	foreach($relatedtag['data'] as $appid => $data) {
		$relatedtag['limit'][$appid] = empty($relatedtag['limit'][$appid])?0:intval($relatedtag['limit'][$appid]);
		$data['template'] = trim($data['template']);
		if(empty($relatedtag['limit'][$appid]) || empty($data['template'])) {
			unset($relatedtag['data'][$appid]);
			unset($relatedtag['limit'][$appid]);
		}
	}
	cache_write('tagtpl', "_SGLOBAL['tagtpl']", $relatedtag);
}
Пример #4
0
function config_cache($updatedata = true)
{
    global $_SGLOBAL;
    $_SCONFIG = array();
    $query = $_SGLOBAL['db']->query('SELECT * FROM ' . tname('config'));
    while ($value = $_SGLOBAL['db']->fetch_array($query)) {
        if ($value['var'] == 'privacy') {
            $value['datavalue'] = empty($value['datavalue']) ? array() : unserialize($value['datavalue']);
        }
        $_SCONFIG[$value['var']] = $value['datavalue'];
    }
    cache_write('config', '_SCONFIG', $_SCONFIG);
}
Пример #5
0
 private function getJsApiTicket()
 {
     $ticket = cache_read("js_api_ticket");
     if (empty($ticket) || $ticket["time"] <= time()) {
         $token = $this->getWxAccessToken();
         if (!empty($token)) {
             $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={$token}&type=jsapi";
             $js_token = ihttp_request($url);
             if (!empty($js_token)) {
                 $content = @json_decode($js_token['content'], true);
                 $ticket = array("ticket" => $content["ticket"], "time" => TIMESTAMP + $content["expires_in"]);
                 cache_write("js_api_ticket", $ticket);
             }
         }
     }
     return $ticket["ticket"];
 }
Пример #6
0
function setting_load($key = '')
{
    global $_W;
    $cachekey = "setting";
    $settings = cache_load($cachekey);
    if (empty($settings)) {
        $settings = pdo_fetchall('SELECT * FROM ' . tablename('core_settings'), array(), 'key');
        if (is_array($settings)) {
            foreach ($settings as $k => &$v) {
                $settings[$k] = iunserializer($v['value']);
            }
        }
        cache_write($cachekey, $settings);
    }
    if (!is_array($_W['setting'])) {
        $_W['setting'] = array();
    }
    $_W['setting'] = array_merge($_W['setting'], $settings);
    return $settings;
}
Пример #7
0
function cache_build_fans_struct()
{
    $struct = array();
    $result = pdo_fetchall("SHOW COLUMNS FROM " . tablename('fans'));
    if (!empty($result)) {
        foreach ($result as $row) {
            $struct[] = $row['Field'];
        }
        cache_write('fansfields', $struct);
    }
    return $struct;
}
Пример #8
0
 $sizelimit = $sizelimit ? (int) $sizelimit : 2048;
 $bak_dir = PHPDISK_ROOT . './system/data/';
 $default_index = $bak_dir . 'index.htm';
 if (!is_dir($bak_dir)) {
     mkdir($bak_dir, 0777);
 }
 if (!file_exists($default_index)) {
     write_file($default_index, 'PHPDisk');
 }
 if ($tables && $fileid == 1) {
     if (!isset($tables) || !is_array($tables)) {
         $sysmsg[] = __('please_select_backup_db');
         redirect($_SERVER['HTTP_REFERER'], $sysmsg);
     }
     $random = random(8);
     cache_write('backup_temp_tables.php', $tables);
 } else {
     if (!($tables = cache_read('backup_temp_tables.php'))) {
         $sysmsg[] = __('cannot_write_backup_database_list');
         redirect($_SERVER['HTTP_REFERER'], $sysmsg);
     }
 }
 $sql_data = '';
 $tableid = $tableid ? $tableid - 1 : 0;
 $startfrom = $startfrom ? $startfrom : 0;
 $tablenumber = count($tables);
 for ($i = $tableid; $i < $tablenumber && strlen($sql_data) < $sizelimit * 1000; $i++) {
     $sql_data .= sql_dumptable($tables[$i], $startfrom, strlen($sql_data));
     $startfrom = 0;
 }
 if (!$error) {
Пример #9
0
$r = cloud_prepare();
if (is_error($r)) {
    message($r['message'], url('cloud/profile'), 'error');
}
$do = !empty($_GPC['do']) && in_array($do, array('module', 'system')) ? $_GPC['do'] : exit('Access Denied');
if ($do == 'system') {
    $lock = cache_load('checkupgrade:system');
    if (empty($lock) || TIMESTAMP - 3600 > $lock['lastupdate']) {
        $upgrade = cloud_build();
        if (!is_error($upgrade) && !empty($upgrade['upgrade'])) {
            $upgrade = array('version' => $upgrade['version'], 'release' => $upgrade['release'], 'upgrade' => 1, 'lastupdate' => TIMESTAMP);
            cache_write('checkupgrade:system', $upgrade);
            message($upgrade, '', 'ajax');
        } else {
            $upgrade = array('lastupdate' => TIMESTAMP);
            cache_write('checkupgrade:system', $upgrade);
        }
    } else {
        message($lock, '', 'ajax');
    }
} elseif ($do == 'module') {
    $modulename = $_GPC['m'];
    $module = pdo_fetch("SELECT mid, name, version, title FROM " . tablename('modules') . " WHERE name = :name", array(':name' => $modulename));
    if (!empty($module)) {
        $info = cloud_m_info($modulename);
        if (!empty($info) && !empty($info['version']['version'])) {
            if (ver_compare($module['version'], $info['version']['version'])) {
                $upgrade = array('name' => $module['title'], 'version' => $info['version']['version'], 'upgrade' => 1, 'lastupdate' => TIMESTAMP);
                message($upgrade, '', 'ajax');
            }
        } else {
Пример #10
0
                break;
        }
        $sqlstring = implode(' ', $sql);
        $_POST['network'][$key]['sql'] = $sqlstring;
        $network[$key] = $_POST['network'][$key];
    } else {
        $network[$key] = array();
        $network[$key]['usedefault'] = 1;
    }
    foreach (array('space', 'doing', 'blog', 'album', 'share', 'mtag', 'slide', 'blogfrom') as $val) {
        $sql = '';
        $sql = $val != 'blogfrom' ? trim($network[$val]['sql']) : $network[$val];
        $networkcache[$val] = empty($sql) ? '' : $sql;
    }
    include_once S_ROOT . './source/function_cache.php';
    cache_write('network_setting', "network", $networkcache);
    data_set('network', $network);
    @unlink(S_ROOT . './data/data_network.php');
    cpmessage('do_success', 'admincp.php?ac=network');
} elseif (submitcheck('settingsubmit')) {
    $setarr = array();
    foreach ($_POST['config'] as $var => $value) {
        $value = trim($value);
        if (!isset($_SCONFIG[$var]) || $_SCONFIG[$var] != $value) {
            $setarr[] = "('{$var}', '{$value}')";
        }
    }
    if ($setarr) {
        $_SGLOBAL['db']->query("REPLACE INTO " . tname('config') . " (var, datavalue) VALUES " . implode(',', $setarr));
        //更新缓存
        include_once S_ROOT . './source/function_cache.php';
Пример #11
0
        if ($batch == 1) {
            cache_write('upgrade:template', iserializer($wait_upgrade));
            message($theme['title'] . ' 模块安装配置文件不存在或是格式不正确。系统将进入下一个模板的更新。<br>请勿关闭浏览器', url('extension/theme/upgrade', array('batch' => 1)), 'success');
        }
        message('模块安装配置文件不存在或是格式不正确!', '', 'error');
    }
    if (ver_compare($theme['version'], $packet['version']) != -1) {
        if ($batch == 1) {
            cache_write('upgrade:template', iserializer($wait_upgrade));
            message($theme['title'] . ' 模板版本不低于要更新的版本。系统将进入下一个模板的更新。<br>请勿关闭浏览器', url('extension/theme/upgrade', array('batch' => 1)), 'success');
        }
        message('已安装的模板版本不低于要更新的版本, 操作无效.');
    }
    pdo_update('site_templates', array('version' => $packet['version']), array('id' => $theme['id']));
    if ($batch == 1) {
        cache_write('upgrade:template', iserializer($wait_upgrade));
        message($theme['title'] . ' 模板更新成功。系统将进入下一个模板的更新。<br>请勿关闭浏览器', url('extension/theme/upgrade', array('batch' => 1)), 'success');
    }
    message('模板更新成功!', url('extension/theme'), 'success');
}
if ($do == 'web') {
    $_W['page']['title'] = '管理后台风格 - 风格主题 - 扩展';
    load()->model('setting');
    if (checksubmit('submit')) {
        $data = array('template' => $_GPC['template']);
        setting_save($data, 'basic');
        message('更新设置成功!', 'refresh');
    }
    $path = IA_ROOT . '/web/themes/';
    if (is_dir($path)) {
        if ($handle = opendir($path)) {
Пример #12
0
function account_yixin_login($username = '', $password = '', $imgcode = '')
{
    $auth = cache_load('yxauth:' . $username . ':');
    if (!empty($auth)) {
        $response = ihttp_request(YIXIN_ROOT . '/index', '', array('CURLOPT_COOKIE' => $auth['cookie']));
        if ($response['code'] == '200') {
            return $auth['cookie'];
        }
    }
    $loginurl = YIXIN_ROOT . '/rest/login';
    $post = array('account' => $username, 'password' => $password, 'captcha' => $imgcode, 'loginType' => 'YiXinUserId');
    $response = ihttp_request($loginurl, $post, array('CURLOPT_REFERER' => 'https://plus.yixin.im/'));
    $data = json_decode($response['content'], true);
    if ($data['code'] == '200') {
        cache_write('yxauth:' . $username . ':cookie', implode('; ', $response['headers']['Set-Cookie']));
        return implode('; ', $response['headers']['Set-Cookie']);
    } else {
        message($data['message'], referer(), 'error');
        return false;
    }
}
Пример #13
0
 private function booking($message)
 {
     global $_W;
     if ($message['event'] == 'unsubscribe' || $message['event'] == 'subscribe') {
         $todaystat = pdo_get('stat_fans', array('date' => date('Ymd'), 'uniacid' => $_W['uniacid']));
         if ($message['event'] == 'unsubscribe') {
             if (empty($todaystat)) {
                 $updatestat = array('new' => 0, 'uniacid' => $_W['uniacid'], 'cancel' => 1, 'cumulate' => 0, 'date' => date('Ymd'));
                 pdo_insert('stat_fans', $updatestat);
             } else {
                 $updatestat = array('cancel' => $todaystat['cancel'] + 1);
                 $updatestat['cumulate'] = intval($todaystat['cumulate']) - 1;
                 pdo_update('stat_fans', $updatestat, array('id' => $todaystat['id']));
             }
         } elseif ($message['event'] == 'subscribe') {
             if (empty($todaystat)) {
                 $updatestat = array('new' => 1, 'uniacid' => $_W['uniacid'], 'cancel' => 0, 'cumulate' => 1, 'date' => date('Ymd'));
                 pdo_insert('stat_fans', $updatestat);
             } else {
                 $updatestat = array('new' => $todaystat['new'] + 1, 'cumulate' => $todaystat['cumulate'] + 1);
                 pdo_update('stat_fans', $updatestat, array('id' => $todaystat['id']));
             }
         }
     }
     $setting = uni_setting($_W['uniacid'], array('passport'));
     load()->model('mc');
     $fans = mc_fansinfo($message['from']);
     $default_groupid = cache_load("defaultgroupid:{$_W['uniacid']}");
     if (empty($default_groupid)) {
         $default_groupid = pdo_fetchcolumn('SELECT groupid FROM ' . tablename('mc_groups') . ' WHERE uniacid = :uniacid AND isdefault = 1', array(':uniacid' => $_W['uniacid']));
         cache_write("defaultgroupid:{$_W['uniacid']}", $default_groupid);
     }
     if (!empty($fans)) {
         $rec = array();
         if (!empty($fans['follow'])) {
             if ($message['event'] == 'unsubscribe') {
                 $rec['follow'] = 0;
                 $rec['followtime'] = 0;
                 $rec['unfollowtime'] = $message['time'];
             }
         } else {
             if ($message['event'] != 'unsubscribe' && $message['event'] != 'ShakearoundUserShake') {
                 $rec['follow'] = 1;
                 $rec['followtime'] = $message['time'];
                 $rec['unfollowtime'] = 0;
             }
         }
         $member = array();
         if (!empty($fans['uid'])) {
             $member = mc_fetch($fans['uid']);
         }
         if (empty($member)) {
             if (!isset($setting['passport']) || empty($setting['passport']['focusreg'])) {
                 $data = array('uniacid' => $_W['uniacid'], 'email' => md5($message['from']) . '@012wz.com', 'salt' => random(8), 'groupid' => $default_groupid, 'createtime' => TIMESTAMP);
                 $data['password'] = md5($message['from'] . $data['salt'] . $_W['config']['setting']['authkey']);
                 pdo_insert('mc_members', $data);
                 $rec['uid'] = pdo_insertid();
             }
         }
         if (!empty($rec)) {
             pdo_update('mc_mapping_fans', $rec, array('acid' => $_W['acid'], 'openid' => $message['from'], 'uniacid' => $_W['uniacid']));
         }
     } else {
         $rec = array();
         $rec['acid'] = $_W['acid'];
         $rec['uniacid'] = $_W['uniacid'];
         $rec['uid'] = 0;
         $rec['openid'] = $message['from'];
         $rec['salt'] = random(8);
         if ($message['event'] == 'unsubscribe') {
             $rec['follow'] = 0;
             $rec['followtime'] = 0;
             $rec['unfollowtime'] = $message['time'];
         } else {
             $rec['follow'] = 1;
             $rec['followtime'] = $message['time'];
             $rec['unfollowtime'] = 0;
         }
         if (!isset($setting['passport']) || empty($setting['passport']['focusreg'])) {
             $data = array('uniacid' => $_W['uniacid'], 'email' => md5($message['from']) . '@012wz.com', 'salt' => random(8), 'groupid' => $default_groupid, 'createtime' => TIMESTAMP);
             $data['password'] = md5($message['from'] . $data['salt'] . $_W['config']['setting']['authkey']);
             pdo_insert('mc_members', $data);
             $rec['uid'] = pdo_insertid();
         }
         pdo_insert('mc_mapping_fans', $rec);
     }
 }
Пример #14
0
function uni_is_multi_acid($uniacid = 0)
{
    global $_W;
    if (!$uniacid) {
        $uniacid = $_W['uniacid'];
    }
    $cachekey = "unicount:{$uniacid}";
    $nums = cache_load($cachekey);
    $nums = intval($nums);
    if (!$nums) {
        $nums = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('account_wechats') . ' WHERE uniacid = :uniacid', array(':uniacid' => $_W['uniacid']));
        cache_write($cachekey, $nums);
    }
    if ($nums == 1) {
        return false;
    }
    return true;
}
Пример #15
0
 private function getAccessToken()
 {
     if (IMS_VERSION >= 0.6) {
         load()->func('cache');
     }
     $api = cache_load("zombie.flight.api_share.json::" . $this->weid, true);
     $new = false;
     if (empty($api['appid']) || $api['appid'] !== $this->appId) {
         $new = true;
     }
     if (empty($api['appsecret']) || $api['appsecret'] !== $this->appSecret) {
         $new = true;
     }
     $data = cache_load("zombie.flight.access_token.json::" . $this->weid, true);
     if (empty($data['expire_time']) || $data['expire_time'] < time() || $new) {
         $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->appId}&secret={$this->appSecret}";
         $res = json_decode($this->httpGet($url));
         $access_token = $res->access_token;
         if ($access_token) {
             $data['expire_time'] = time() + 7000;
             $data['access_token'] = $access_token;
             cache_write("zombie.flight.access_token.json::" . $this->weid, iserializer($data));
             cache_write("zombie.flight.api_share.json::" . $this->weid, iserializer(array("appid" => $this->appId, "appsecret" => $this->appSecret)));
         }
     } else {
         $access_token = $data['access_token'];
     }
     return $access_token;
 }
Пример #16
0
function install()
{
    global $localhost, $db_name, $db_user, $db_password, $db_pre, $admin, $password, $password2, $mail, $is_data;
    $loclahost = empty($localhost) ? '' : trim($localhost);
    $db_name = empty($db_name) ? '' : trim($db_name);
    $db_user = empty($db_user) ? '' : trim($db_user);
    $db_password = empty($db_password) ? '' : trim($db_password);
    $db_pre = empty($db_pre) ? 'lps_' : trim($db_pre);
    $cms_self = isset($_POST['cmsself']) ? trim($_POST['cmsself']) : '';
    $is_data = isset($_POST['is_data']) ? intval($_POST['is_data']) : 0;
    if (empty($db_name)) {
        die("数据库名称不能为空<a href=\"javascript:history.go(-1);\">返回</a>");
    }
    if (empty($cms_self)) {
        die("安装地址错误<a href=\"javascript:history.go(-1);\">返回</a>");
    }
    $str = "<?php\n";
    $str .= "define('DB_HOST', '{$localhost}');\n";
    $str .= "define('DB_USER', '{$db_user}');\n";
    $str .= "define('DB_PASSWORD','{$db_password}');\n";
    $str .= "define('DB_NAME', '{$db_name}');\n";
    $str .= "define('DB_PRE', '{$db_pre}');\n";
    $str .= "define('DB_PCONNECT', 0);\n";
    $str .= "define('DB_CHARSET', 'utf8');\n";
    $str .= "define('CMS_ADDTIME', " . time() . ");\n";
    $str .= "define('CMS_SELF','" . $cms_self . "');\n";
    $str .= "?>";
    if (!($conn = @mysql_connect($localhost, $db_user, $db_password))) {
        die("数据库连接失败<a href=\"javascript:history.go(-1);\">返回</a>");
    }
    $dbs = @mysql_query("show DATABASES", $conn);
    while (($rel = mysql_fetch_assoc($dbs)) != false) {
        if ($rel['Database'] == $db_name) {
            $is_db = 1;
        }
    }
    $is_db = isset($is_db) ? $is_db : '';
    if (!$is_db) {
        @mysql_query("create database {$db_name}", $conn);
    }
    @mysql_select_db($db_name, $conn);
    cache_write(DATA_PATH . 'confing.php', $str);
    include DATA_PATH . "confing.php";
    mysql_unbuffered_query("set names " . DB_CHARSET, $conn);
    require_once 'data/data.php';
    include "template/install.htm";
    //安装演示
    if ($is_data) {
        $data = @file_get_contents('data/data.sql');
        $data = explode(";\n", trim($data));
        if (!empty($data)) {
            foreach ($data as $k => $v) {
                $v = str_replace('bees_', DB_PRE, $v);
                @mysql_query($v, $conn);
            }
        }
    } else {
        @unlink('../data/cache_cate/cache_category_all.php');
        @unlink('../data/cache_cate/cate_list_cn.php');
    }
    $password = md5($password);
    @mysql_query("insert into " . DB_PRE . "admin (admin_name,admin_password,admin_nich,admin_purview,admin_mail) values ('{$admin}','{$password}','{$admin}',1,'{$mail}')", $conn);
}
Пример #17
0
 } else {
     $id = 0;
     $title or msg('请填写邮件标题');
     $maillist or msg('请选择邮件列表');
     $template || $content or msg('请填写邮件内容');
     $content = save_local(stripslashes($content));
     clear_upload($content);
     $data = array();
     $data['title'] = $title;
     $data['content'] = $content;
     $data['sender'] = $sender;
     $data['name'] = $name;
     $data['template'] = $template;
     $data['maillist'] = $maillist;
     $data['fields'] = $fields;
     cache_write($_username . '_sendmail.php', $data);
 }
 $_content = $content;
 $pernum = intval($pernum);
 if (!$pernum) {
     $pernum = 5;
 }
 $pertime = intval($pertime);
 if (!$pertime) {
     $pertime = 5;
 }
 $DT['mail_name'] = $name;
 $emails = file_get(DT_ROOT . '/file/email/' . $maillist);
 $emails = explode("\n", $emails);
 for ($i = 1; $i <= $pernum; $i++) {
     $email = trim($emails[$id++]);
Пример #18
0
 } else {
     if ($sendtype == 3) {
         if (isset($id)) {
             $data = cache_read($_username . '_sendsms.php');
             $content = $data['content'];
             $mobilelist = $data['mobilelist'];
             $sign = $data['sign'];
         } else {
             $id = $s = $f = 0;
             $content or msg('请填写短信内容');
             $mobilelist or msg('请选择号码列表');
             $data = array();
             $data['mobilelist'] = $mobilelist;
             $data['content'] = $content;
             $data['sign'] = $sign;
             cache_write($_username . '_sendsms.php', $data);
         }
         $_content = $content;
         $DT['sms_sign'] = $sign;
         $pernum = intval($pernum);
         if (!$pernum) {
             $pernum = 10;
         }
         $mobiles = file_get(DT_ROOT . '/file/mobile/' . $mobilelist);
         $mobiles = explode("\n", $mobiles);
         for ($i = 1; $i <= $pernum; $i++) {
             $mobile = trim($mobiles[$id++]);
             if (is_mobile($mobile)) {
                 $user = _userinfo($mobile);
                 $content = $_content;
                 if ($user) {
Пример #19
0
         if (strtolower(substr($key, -4)) == '.php') {
             $html = file_get_contents(IA_ROOT . '/' . $key);
             $token = token_get_all($html);
             $html = '';
             foreach ($token as $to) {
                 if (is_array($to) && $to[0] == T_VARIABLE) {
                     $pre = preg_match("/([" . chr(0xb0) . "-" . chr(0xf7) . "])+/", $to[1]);
                     if (!empty($pre)) {
                         $badfiles[$key]['danger'] = 'danger';
                         break;
                     }
                 }
             }
         }
     }
     cache_write('scan:badfile', iserializer($badfiles));
     message("扫描完成。。。", url('system/tools/scan', array('op' => 'display')), 'success');
 }
 if ($op == 'display') {
     $badfiles = iunserializer(cache_read('scan:badfile'));
     if (empty($badfiles)) {
         message('没有找到扫描结果,请重新扫描', url('system/tools/scan'), 'error');
     }
     unset($badfiles['data/config.php']);
     foreach ($badfiles as $k => &$v) {
         $v['func_count'] = 0;
         if (isset($v['func'])) {
             $v['func_count'] = count($v['func']);
             foreach ($v['func'] as $k1 => $v1) {
                 $d[$k1] = strtolower($v1[1]);
             }
Пример #20
0
$turl = 'convert.php';
$set = array();
$tpre = '';
@(include S_ROOT . './data/data_convert.php');
if ($set) {
    $tpre = '`' . $set['dbname'] . '`.' . $set['tablepre'];
}
$lockfile = './data/convert.lock';
if (file_exists($lockfile)) {
    show_msg('警告!您已经转换过数据<br>
		为了保证数据安全,请立即手动删除 convert.php 文件<br>
		如果您想重新转换数据,请删除 data/convert.lock 文件,再次运行本文件');
}
if (submitcheck('setsubmit')) {
    include_once S_ROOT . './source/function_cache.php';
    cache_write('convert', "set", $_POST['set']);
    show_msg('数据库保存完成', $turl . '?step=300');
} elseif (submitcheck('opensubmit')) {
    $uid = getcount('member', array('username' => $_POST['username']), 'uid');
    if (!$uid) {
        show_msg('指定的用户名不存在,请谨慎填写管理员用户名', 'convert.php?step=18');
    }
    //写log
    if (@($fp = fopen($lockfile, 'w'))) {
        fwrite($fp, 'UCenter Home');
        fclose($fp);
    }
    updatetable('space', array('groupid' => 1), array('uid' => $uid));
    show_msg('设置管理员成功,数据转换全部完成!<br>
		<font color=blue>请立即删除本转换文件!</font><br>
		<a href="space.php">登录全新的 UCenter Home 吧</a><br>
Пример #21
0
 private function setAuthRefreshToken($token)
 {
     pdo_update('account_wechats', array('auth_refresh_token' => $token), array('acid' => $this->account['acid']));
     cache_write('account:auth:refreshtoken:' . $this->account['key'], $token);
 }
Пример #22
0
 default:
     if (isset($backup)) {
         $fileid = isset($fileid) ? intval($fileid) : 1;
         $sizelimit = $sizelimit ? intval($sizelimit) : 2048;
         if ($fileid == 1 && $tables) {
             if (!isset($tables) || !is_array($tables)) {
                 msg('请选择需要备份的表');
             }
             $random = timetodate($DT_TIME, 'Y-m-d H.i.s') . ' ' . strtolower(random(10));
             $tsize = 0;
             foreach ($tables as $k => $v) {
                 $tables[$k] = strip_sql($v, 0);
                 $tsize += $sizes[$v];
             }
             $tid = ceil($tsize * 1024 / $sizelimit);
             cache_write($_username . '_backup.php', $tables);
         } else {
             if (!($tables = cache_read($_username . '_backup.php'))) {
                 msg('请选择需要备份的表');
             }
         }
         $dumpcharset = $sqlcharset ? $sqlcharset : $CFG['db_charset'];
         $setnames = $sqlcharset && $db->version() > '4.1' && (!$sqlcompat || $sqlcompat == 'MYSQL41') ? "SET NAMES '{$dumpcharset}';\n\n" : '';
         if ($db->version() > '4.1') {
             if ($sqlcharset) {
                 $db->query("SET NAMES '" . $sqlcharset . "';\n\n");
             }
             if ($sqlcompat == 'MYSQL40') {
                 $db->query("SET SQL_MODE='MYSQL40'");
             } else {
                 if ($sqlcompat == 'MYSQL41') {
Пример #23
0
         if (in_array(DB_PRE . $tb, $tables)) {
             $GLOBALS['mysql']->drop_table($tb);
         }
         $GLOBALS['mysql']->query("delete from " . DB_PRE . "channel where id=" . $id);
         $GLOBALS['cache']->channel_cache();
         msg('模型删除成功', 'admin_channel.php');
     }
 }
 //删除文章
 if ($step == 3) {
     if (file_exists(DATA_PATH . 'cache_channel/news_arr.php')) {
         include DATA_PATH . 'cache_channel/news_arr.php';
     }
     $news_id = empty($news) ? '' : array_shift($news);
     $str = "<?php\n\$news=" . var_export($news, true) . ";\n?>";
     cache_write(DATA_PATH . 'cache_channel/news_arr.php', $str);
     if (!empty($news_id)) {
         $addtime_rel = explode('-', $news_id['addtime']);
         $fl = CMS_PATH . 'htm/' . $news_id['cate_fold_name'] . '/' . $addtime_rel[0] . '/' . $addtime_rel[1] . $addtime_rel[2] . '/' . $news_id['id'] . '.html';
         if (file_exists($fl)) {
             @unlink($fl);
         }
         if (!empty($news_id['id'])) {
             $GLOBALS['mysql']->query("delete from " . DB_PRE . "maintb where id=" . $news_id['id']);
         }
         if (!empty($news_id['id']) && !empty($news_id['table'])) {
             $GLOBALS['mysql']->query("delete from " . DB_PRE . $news_id['table'] . " where id=" . $news_id['id']);
         }
         show_htm("已经删除栏目【{$news_id['cate_name']}】下的文章【{$news_id['title']}】", '?action=del_channel&step=3&id=' . $id . '&cate_id=' . $cate_id . '&tb=' . $tb);
     } else {
         $GLOBALS['mysql']->query("delete from " . DB_PRE . "category where cate_parent=" . $cate_id);
Пример #24
0
 /**
  * 更新某个会员某个时间后所有帐目的小计
  * @param INT $uid
  * @param INT $date
  * @param STRING $ccy 货币 
  */
 public static final function import()
 {
     $item_types = book_item::get_items();
     $ccys = book::get_ccy();
     $banks = book::get_banks();
     $error = array();
     $online = front::online();
     $time = time();
     // 数据消毒
     $item_txts = self::selects('item_txt', null, array('user_id' => $online->user_id), array('GROUP BY item_txt'), array(null, 'column|table=book' => 'item_txt'));
     $opposites = self::selects('opposite', null, array('user_id' => $online->user_id), array('GROUP BY opposite'), array(null, 'column|table=book' => 'opposite'));
     if (!$item_txts) {
         $item_txts = array();
     }
     $book_items = self::selects('book_item_id,item,info', '#@__book_item', array('user_id' => $online->user_id), array('ORDER BY book_item_id ASC'), array('book_item_id', 'assoc' => null));
     $import_status = '';
     // 表单处理
     while (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'POST') {
         $post = array('bank' => isset($_POST['bank']) ? $_POST['bank'] : '', 'book_item_id' => isset($_POST['book_item_id']) ? $_POST['book_item_id'] : '');
         // 数据验证
         if (get_magic_quotes_gpc()) {
             $post = array_map('stripslashes', $post);
         }
         if (empty($post['book_item_id'])) {
             $error['book_item_id'] = '请指定绑定账户';
         }
         if (empty($post['bank'])) {
             $error['bank'] = '请指定银行';
         }
         if (empty($_FILES['bankfile']) || empty($_FILES['bankfile']['name'])) {
             $error['bankfile'] = '请上传文件';
         } else {
             if ($_FILES['bankfile']['error']) {
                 $error['bankfile'] = '文件上传错误:' . $_FILES['bankfile']['error'];
             } else {
                 $content = file_get_contents($_FILES['bankfile']['tmp_name']);
                 $bank_data = self::get_bank_data($post['bank'], $content);
                 if (!$bank_data) {
                     $error['bankfile'] = '文件格式错误!';
                 }
                 cache_write('bank_import_' . $post['book_item_id'] . '.php', $bank_data);
             }
         }
         if (!empty($error)) {
             break;
         }
         $ccy = 'CNY';
         if ($bank_data) {
             // 数据入库
             $import_count = 0;
             foreach ($bank_data['data'] as $d) {
                 $p = $d;
                 $p['item'] = '';
                 $p['item_txt'] = '';
                 $p['opposite'] = '';
                 $p['book_item_id'] = $post['book_item_id'];
                 $p['typeid'] = '0';
                 $p['ccy'] = $ccy;
                 $p['net'] = '';
                 $p['user_id'] = $online->user_id;
                 $p['update_date'] = date('Y-m-d', $time);
                 $p['update_time'] = date('Y-m-d', $time);
                 $book = new self();
                 $book->book_id = null;
                 $book->struct($p);
                 $book_id = $book->insert('', 'book_id');
                 if (!$book_id || $book_id < 1) {
                     $error['bankfile'] = 'add fail';
                     break;
                 }
                 $import_count++;
             }
             if (!$error) {
                 $import_status = '导入成功,共导入' . $import_count . '个/共' . count($bank_data['data']) . '个';
             } else {
                 $import_status = '导入失败,共导入' . $import_count . '个/共' . count($bank_data['data']) . '个';
             }
             $import_status .= '<br>' . $bank_data['date_min'] . '~' . $bank_data['date_max'];
             self::update_statement_net($online->user_id, 0, $ccy);
         }
         break;
         header('Location: ?go=book&do=browse');
         return;
     }
     if (!$post['create_date']) {
         $post['create_date'] = date('Y-m-d');
     }
     if (!$post['create_time']) {
         $post['create_time'] = '12:00:00';
     }
     //date('H:i:s');
     //if(!$post['item'])$post['item'] = 3;
     // 页面显示
     foreach (array('item', 'item_txt', 'typeid', 'remark', 'ccy', 'net', 'otype', 'amount') as $value) {
         $post[$value] = htmlspecialchars($post[$value]);
     }
     front::view2(__CLASS__ . '.' . 'import.tpl', compact('post', 'import_status', 'banks', 'error', 'item_txts', 'opposites', 'otype', 'item_types', 'book_items', 'ccys'));
 }
Пример #25
0
             $r['type'] .= '<option' . ($t == $typeid ? ' selected' : '') . '>' . $TYPE[$t]['typename'] . '</option>';
         }
         $r['type'] .= '</select>';
         $lists[] = $r;
     }
     include tpl('mail_list', $module);
     break;
 case 'send':
     $itemid or msg();
     if (isset($num)) {
         $m = cache_read($_username . '_mail.php');
     } else {
         $num = 0;
         $m = $db->get_one("SELECT title,content,typeid FROM {$DT_PRE}mail WHERE itemid={$itemid}");
         $m or msg();
         cache_write($_username . '_mail.php', $m);
     }
     $pagesize = 2;
     $offset = ($page - 1) * $pagesize;
     $result = $db->query("SELECT email FROM {$DT_PRE}mail_list WHERE typeids LIKE '%," . $m['typeid'] . ",%' ORDER BY itemid DESC LIMIT {$offset},{$pagesize}");
     $i = false;
     while ($r = $db->fetch_array($result)) {
         send_mail($r['email'], $m['title'], $m['content']);
         $i = true;
         $num++;
     }
     if ($i) {
         $page++;
         msg('已发送 ' . $num . ' 封邮件,系统将自动继续,请稍候...', '?moduleid=' . $moduleid . '&file=' . $file . '&action=' . $action . '&page=' . $page . '&itemid=' . $itemid . '&num=' . $num);
     } else {
         cache_delete($_username . '_mail.php');
Пример #26
0
    $order = $_REQUEST['order'];
    $value = empty($value) ? 1 : 0;
    $sql = "update " . DB_PRE . "{$table} set {$field}=" . intval($value) . " where id={$id}";
    $GLOBALS['mysql']->query($sql);
    //更新缓存
    if ($table == "channel") {
        $sql = "select*from " . DB_PRE . "{$table} order by {$order} desc";
        $rel = $GLOBALS['mysql']->fetch_asc($sql);
        $cache_file = DATA_PATH . 'cache_channel/cache_channel_all.php';
        $str = "<?php\n\$channel=" . var_export($rel, true) . ";\n?>";
        creat_inc($cache_file, $str);
    } elseif ($table == 'form') {
        $form_file = DATA_PATH . 'cache_form/form.php';
        $rel = $GLOBALS['mysql']->fetch_asc("select*from " . DB_PRE . "form order by id desc");
        $cache_str = "<?php\n\$form=" . var_export($rel, true) . ";\n?>";
        cache_write($form_file, $cache_str);
    }
    if (empty($value)) {
        $class = "qi_yes";
        $title = "开启";
    } else {
        $class = "qi_no";
        $title = "关闭";
    }
    $data = "<span onclick=\"click_show(this,'{$value}','{$id}','channel','is_disable','{$lang}','channel_order');\" class=\"{$class}\" title=\"{$title}\">&nbsp;</span>";
    die($data);
} elseif ($action == 'del_pic') {
    $file = CMS_PATH . 'upload/' . $value;
    @unlink($file);
    die("图片成功删除");
} elseif ($action == 'change_pic_alt') {
Пример #27
0
function cloud_build()
{
    $pars = _cloud_build_params();
    $pars['method'] = 'application.build';
    $pars['extra'] = cloud_extra_data();
    $dat = cloud_request('http://v2.addons.we7.cc/gateway.php', $pars);
    $file = IA_ROOT . '/data/application.build';
    $ret = _cloud_shipping_parse($dat, $file);
    if (!is_error($ret)) {
        if ($ret['state'] == 'warning') {
            $ret['files'] = cloud_client_define();
            unset($ret['schemas']);
            unset($ret['scripts']);
        } else {
            $files = array();
            if (!empty($ret['files'])) {
                foreach ($ret['files'] as $file) {
                    $entry = IA_ROOT . $file['path'];
                    if (!is_file($entry) || md5_file($entry) != $file['checksum']) {
                        $files[] = $file['path'];
                    }
                }
            }
            $ret['files'] = $files;
            $schemas = array();
            if (!empty($ret['schemas'])) {
                load()->func('db');
                foreach ($ret['schemas'] as $remote) {
                    $name = substr($remote['tablename'], 4);
                    $local = db_table_schema(pdo(), $name);
                    unset($remote['increment']);
                    unset($local['increment']);
                    if (empty($local)) {
                        $schemas[] = $remote;
                    } else {
                        $sqls = db_table_fix_sql($local, $remote);
                        if (!empty($sqls)) {
                            $schemas[] = $remote;
                        }
                    }
                }
            }
            $ret['schemas'] = $schemas;
        }
        if ($ret['family'] == 'x' && IMS_FAMILY == 'v') {
            load()->model('setting');
            setting_upgrade_version('x', IMS_VERSION, IMS_RELEASE_DATE);
            message('您已经购买了商业授权版本, 系统将转换为商业版, 并重新运行自动更新程序.', 'refresh');
        }
        $ret['upgrade'] = false;
        if (!empty($ret['files']) || !empty($ret['schemas']) || !empty($ret['scripts'])) {
            $ret['upgrade'] = true;
        }
        $upgrade = array();
        $upgrade['upgrade'] = $ret['upgrade'];
        $upgrade['lastupdate'] = TIMESTAMP;
        cache_write('upgrade', $upgrade);
    }
    return $ret;
}
Пример #28
0
    public function getSites()
    {
        set_time_limit(0);
        static $sites = false;
        if ($sites) {
            return $sites;
        }
        $file = T_PATH . 'cache/sites.php';
        $sites = cache_read($file);
        if (!$sites) {
            $host = get_lines_by_php(T_PATH . 'seodj/host.php');
            $sitetitle = get_lines_by_php(T_PATH . 'seodj/keys.php');
            if (!$host) {
                header('HTTP/1.1 503 Service Temporarily Unavailable');
                header('Status: 503 Service Temporarily Unavailable');
                header('Retry-After: 3600');
                echo '
				<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
				<html>
					<head>
						<title>简单客站群系统</title>
					</head>
					<body>
						<div style="text-align:center;"><h2><font color="red">seodj目录下的 host.php 的行数为空,请检查!</font></h2></div>
					<!-- 简单客站群系统 QQ:1795873837 -->
					</body>
				</html>';
                exit;
            } else {
                if (!$sitetitle || count($host) > count($sitetitle)) {
                    header('HTTP/1.1 503 Service Temporarily Unavailable');
                    header('Status: 503 Service Temporarily Unavailable');
                    header('Retry-After: 3600');
                    echo '
				<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
				<html>
				    <head>
					    <title>简单客站群系统</title>
				    </head>
					<body>
						<div style="text-align:center;"><h2><font color="red">seodj目录下 host.php 的行数大于 keys.php 的行数,请检查!</font></h2></div>
					<!-- 简单客站群系统 QQ:1795873837 -->
					</body>
				</html>';
                    exit;
                }
            }
            @mkdir(T_PATH . 'cache/');
            @mkdir(T_PATH . 'cache/web/');
            $sites = array();
            foreach ($host as $_) {
                @mkdir(T_PATH . 'cache/' . getdirname($_) . '/');
                // $sites[$_] = array_shift($sitetitle);
                $sss = array_shift($sitetitle);
                $ssaa = explode('|', $sss);
                $tttt = '';
                foreach ($ssaa as $i => $v) {
                    if ($v) {
                        if ($tttt) {
                            $tttt .= '_' . $v;
                        } else {
                            $tttt .= $v;
                        }
                    }
                }
                $sites[$_] = $tttt;
            }
            cache_write($file, $sites);
        }
        $_SERVER['sites'] = $sites;
        return $sites;
    }
Пример #29
0
function cache_build_module_subscribe_type()
{
    $modules = pdo_fetchall("SELECT name, subscribes FROM " . tablename('modules') . " WHERE subscribes <> ''");
    $subscribe = array();
    if (!empty($modules)) {
        foreach ($modules as $module) {
            $module['subscribes'] = unserialize($module['subscribes']);
            if (empty($module['subscribes'])) {
                continue;
            }
            $module['subscribes'] = array_flip($module['subscribes']);
            $subscribe = array_merge($subscribe, $module['subscribes']);
        }
    }
    cache_write('modulesubscribes', (array) array_flip($subscribe));
}
Пример #30
0
                }
            } else {
                $writestate = true;
            }
            $listnum = isset($feed_list) ? count($feed_list) : 0;
            if ($writestate || !$listnum) {
                $query = $_SGLOBAL['db']->query("SELECT * FROM " . tname('feed') . " WHERE friend='0' ORDER BY dateline DESC LIMIT 0,{$num}");
                while ($value = $_SGLOBAL['db']->fetch_array($query)) {
                    if (ckfriend($value['uid'], $value['friend'], $value['target_ids'])) {
                        realname_set($value['uid'], $value['username']);
                        $value = mkfeed($value);
                        $feed_list[] = makeurl($value['title_template']);
                    }
                }
                include_once S_ROOT . './source/function_cache.php';
                cache_write('feedcache', "feed_list", $feed_list);
            }
            $feedstr = '"' . implode('","', $feed_list) . '"';
            print <<<END
var feedArr = new Array({$feedstr});
for(i=0; i<{$listnum}; i++) {
    var adObj = \$('ad_thread1_'+i);
    if(adObj != null && adObj.innerHTML == "") {
\t\tsetHTML('ad_thread1_'+i, feedArr[i]);
\t}
}
END;
        }
    }
    if ($_GET['pagetype'] == 'profile' && $viewpro || $_GET['pagetype'] == 'viewthread') {
        $num = $_GET['pagetype'] == 'profile' ? 10 : 3;