Exemple #1
0
function _do_register($username, $password, $email)
{
    $user = array('username' => $username, 'password' => 'FAKE_PASSWORD', 'email' => $email);
    $uid = DB::insert('member', $user);
    $user['uid'] = $uid;
    $password = Widget_Password::encrypt($user, $password);
    DB::query("UPDATE member SET password='******' WHERE uid='{$uid}'");
    DB::insert('member_setting', array('uid' => $uid, 'cookie' => ''));
    HOOK::run('register_user', true, $user);
    CACHE::update('username');
    CACHE::save('user_setting_' . $uid, '');
    return $uid;
}
Exemple #2
0
    showmessage('成功更新到 1.13.11.9!', './');
} elseif ($current_version == '1.13.11.9') {
    runquery("\nALTER TABLE `plugin` ADD `enable` TINYINT(1) NOT NULL DEFAULT '1' AFTER `id`;\nALTER TABLE `plugin` ADD `version` VARCHAR(8) NOT NULL DEFAULT '0';\nALTER TABLE `member_setting` ADD `cookie` TEXT BINARY CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;\n");
    $query = DB::query('SELECT uid, cookie FROM member');
    while ($result = DB::fetch($query)) {
        save_cookie($result['uid'], $result['cookie']);
    }
    DB::query('ALTER TABLE `member` DROP `cookie`');
    $query = DB::query('SHOW columns FROM `plugin`');
    while ($result = DB::fetch($query)) {
        if ($result['Field'] == 'module') {
            DB::query('ALTER TABLE `plugin` DROP `module`');
        }
    }
    CACHE::clear();
    CACHE::update('plugins');
    saveSetting('register_limit', 1);
    saveSetting('register_check', 1);
    saveSetting('jquery_mode', 2);
    saveSetting('version', '1.13.12.15');
    showmessage('成功更新到 1.13.12.15!', './');
} elseif ($current_version == '1.13.12.15') {
    saveSetting('version', '1.13.12.25');
    showmessage('成功更新到 1.13.12.25!', './');
} elseif ($current_version == '1.13.12.25') {
    if ($_config['adminid']) {
        saveSetting('admin_uid', $_config['adminid']);
    }
    saveSetting('version', '1.14.1.15');
    showmessage('成功更新到 1.14.1.15!', './');
}
Exemple #3
0
 function handleAction()
 {
     global $uid;
     if (!is_admin($uid)) {
         exit('Access Denied');
     }
     $data = array();
     $data['msgx'] = 0;
     $setting = json_decode($this->getSetting('setting'), true);
     switch ($_GET['action']) {
         case 'getsetting':
             $query = DB::query("SELECT * FROM `zw_mailauth_list`;");
             while ($result = DB::fetch($query)) {
                 $result['regtime'] = date("Y年m月d日 H:m:s", $result['regtime']);
                 $data['list'][] = $result;
             }
             $data['count'] = count($data['list']);
             $data['setting'] = json_decode($this->getSetting('setting'), true);
             break;
         case 'savesetting':
             $mailaddrepeat = $_POST['mailaddrepeat'] == 1 ? 1 : 0;
             $this->saveSetting('setting', json_encode(array('deathtime' => $_POST['deathtime'], 'title' => $_POST['title'], 'format' => $_POST['format'], 'mailaddrepeat' => $mailaddrepeat, 'abledomain' => $_POST['abledomain'], 'unabledomain' => $_POST['unabledomain'], 'unableaddress' => $_POST['unableaddress'])));
             $data['msg'] = '保存成功!';
             break;
         case 'clear':
             $deltime = time() - $setting['deathtime'] * 60;
             DB::query("DELETE FROM `zw_mailauth_list` WHERE `regtime`<{$deltime}");
             $data['msg'] = "清除成功!";
             break;
         case 'alldel':
             DB::query('TRUNCATE TABLE `zw_mailauth_list`');
             $data['msg'] = '已经全部删除!';
             break;
         case 'allpass':
             $query = DB::query("SELECT * FROM `zw_mailauth_list`;");
             while ($result = DB::fetch($query)) {
                 $list[] = $result;
             }
             DB::query('TRUNCATE TABLE `zw_mailauth_list`');
             for ($i = 0; $i < count($list); $i++) {
                 $uid = DB::insert('member', array('username' => $list[$i]['username'], 'password' => $list[$i]['password'], 'email' => $list[$i]['email']));
                 DB::insert('member_setting', array('uid' => $uid));
                 CACHE::update('username');
                 CACHE::save('user_setting_' . $uid, '');
             }
             $data['msg'] = '已经全部通过!';
             break;
         case 'allresend':
             $query = DB::query("SELECT * FROM `zw_mailauth_list`");
             while ($result = DB::fetch($query)) {
                 $list[] = $result;
             }
             for ($i = 0; $i < count($list); $i++) {
                 $content = $this->getMailContent($setting['format'], $list[$i]['username'], $list[$i]['authcode'], $list[$i]['deathtime']);
                 DB::insert('mail_queue', array('to' => $list[$i]['email'], 'subject' => $setting['title'], 'content' => $content));
             }
             DB::query("UPDATE `zw_mailauth_list` SET `regtime`=" . time());
             saveSetting('mail_queue', 1);
             $data['msg'] = '已经全部加入到邮件队列中,稍后将自动发送!';
             break;
         case 'resend':
             $result = DB::fetch_first("SELECT * FROM `zw_mailauth_list` WHERE `id`=" . intval($_GET['vid']));
             $content = $this->getMailContent($setting['format'], $result['username'], $result['authcode'], $setting['deathtime']);
             DB::query("UPDATE `zw_mailauth_list` SET `regtime`=" . time() . " WHERE `id`=" . intval($_GET['vid']));
             DB::insert('mail_queue', array('to' => $result['email'], 'subject' => $setting['title'], 'content' => $content));
             saveSetting('mail_queue', 1);
             $data['msg'] = "新的验证邮件已经加入到队列中,稍后将自动发送!";
             break;
         case 'pass':
             $result = DB::fetch_first("SELECT * FROM `zw_mailauth_list` WHERE `id`=" . intval($_GET['vid']));
             $uid = DB::insert('member', array('username' => $result['username'], 'password' => $result['password'], 'email' => $result['email']));
             DB::insert('member_setting', array('uid' => $uid));
             CACHE::update('username');
             CACHE::save('user_setting_' . $uid, '');
             DB::query("DELETE FROM `zw_mailauth_list` WHERE id=" . intval($_GET['vid']));
             $data['msg'] = '已经通过帐号的邮箱验证!';
             break;
         case 'del':
             DB::query("DELETE FROM `zw_mailauth_list` WHERE id=" . intval($_GET['vid']));
             $data['msg'] = '成功删除该记录!';
             break;
         default:
             $data['msg'] = '没有指定 Action!!';
     }
     echo json_encode($data);
 }
Exemple #4
0
            }
            if (strlen($username) > 24) {
                showmessage('用户名过长,请修改', dreferer(), 5);
            }
            $un = strtolower($username);
            if (strexists($un, 'admin') || strexists($un, 'guanli')) {
                showmessage('用户名不和谐,请修改', dreferer(), 5);
            }
            $user = DB::fetch_first("SELECT * FROM member WHERE username='******'");
            if ($user) {
                showmessage('用户名已经存在', 'member.php');
            }
            HOOK::run('before_register');
            $uid = DB::insert('member', array('username' => $username, 'password' => $password, 'email' => $email));
            DB::insert('member_setting', array('uid' => $uid));
            CACHE::update('username');
            CACHE::save('user_setting_' . $uid, '');
            do_login($uid);
            HOOK::run('register_finish', $uid);
            showmessage("注册成功,您的用户名是 <b>{$username}</b> 记住了哦~!", dreferer(), 3);
        }
    }
    header('Location: member.php');
    exit;
} elseif ($_POST) {
    if ($_POST['username'] && $_POST['password']) {
        $username = daddslashes($_POST['username']);
        $password = md5(ENCRYPT_KEY . md5($_POST['password']) . ENCRYPT_KEY);
        $un = strtolower($username);
        if (strlen($username) > 24) {
            showmessage('用户名过长,请修改', dreferer(), 5);
Exemple #5
0
function saveSetting($k, $v)
{
    $v = addslashes($v);
    DB::query("REPLACE INTO setting SET v='{$v}', k='{$k}'");
    CACHE::update('setting');
}
Exemple #6
0
 function INIT()
 {
     global $_PLUGIN;
     $_PLUGIN = array();
     $_PLUGIN['list'] = CACHE::get('plugins');
     $_PLUGIN['obj'] = array();
     $_PLUGIN['hook'] = array();
     $_PLUGIN['page'] = array();
     $_PLUGIN['shortcut'] = array();
     foreach ($_PLUGIN['list'] as $plugin) {
         $pluginid = $plugin['id'];
         $classfile = ROOT . './plugins/' . $pluginid . '/plugin.class.php';
         if (file_exists($classfile)) {
             require_once $classfile;
             $classname = "plugin_{$pluginid}";
             if (!class_exists("plugin_{$pluginid}", false)) {
                 continue;
             }
             $_PLUGIN['obj'][$pluginid] = new $classname();
             if (method_exists($obj, '__construct') || method_exists($obj, '__destruct') || method_exists($obj, $classname)) {
                 unset($_PLUGIN['obj'][$pluginid]);
                 continue;
             }
             $methods = get_class_methods($classname);
             if (property_exists($_PLUGIN['obj'][$pluginid], 'version')) {
                 $version = $_PLUGIN['obj'][$pluginid]->version;
                 if ($version && $plugin['ver'] != $version) {
                     if (method_exists($_PLUGIN['obj'][$pluginid], 'on_upgrade')) {
                         $return_ver = $_PLUGIN['obj'][$pluginid]->on_upgrade($plugin['ver']);
                         if ($return_ver) {
                             DB::query("UPDATE `plugin` SET `version`='{$return_ver}' WHERE name='{$pluginid}'");
                         } else {
                             DB::query("UPDATE `plugin` SET `version`='{$version}' WHERE name='{$pluginid}'");
                         }
                     } else {
                         DB::query("UPDATE `plugin` SET `version`='{$version}' WHERE name='{$pluginid}'");
                     }
                     // Reload cron scripts
                     DB::query("DELETE FROM cron WHERE id LIKE '%" . $pluginid . "%'");
                     foreach ($_PLUGIN['obj'][$pluginid]->modules as $module) {
                         if ($module['type'] == 'cron') {
                             DB::insert('cron', array_merge($module['cron'], array('nextrun' => TIMESTAMP)), false, true);
                         }
                     }
                     CACHE::update('plugins');
                 }
             }
             foreach ($methods as $method) {
                 $_PLUGIN['hook'][$method][] = $pluginid;
             }
             if (method_exists($_PLUGIN['obj'][$pluginid], 'getMethods')) {
                 $_PLUGIN['obj'][$pluginid]->modules = $_PLUGIN['obj'][$pluginid]->getMethods();
             }
             if (method_exists($_PLUGIN['obj'][$pluginid], 'getModules')) {
                 $_PLUGIN['obj'][$pluginid]->modules = $_PLUGIN['obj'][$pluginid]->getModules();
             }
             foreach ($_PLUGIN['obj'][$pluginid]->modules as $module) {
                 self::parse_module($module, $pluginid);
             }
         }
     }
 }
Exemple #7
0
     if (!$_POST['cookie']) {
         break;
     }
     $cookie = daddslashes($_POST['cookie']);
     if (!preg_match('/BDUSS=(.+?)/', $cookie)) {
         showmessage('Cookie 信息不完整,请尝试重新获取', './#baidu_bind', 1);
     }
     if (!preg_match('/BAIDUID=(.+?)/', $cookie)) {
         showmessage('Cookie 信息不完整,请尝试重新获取', './#baidu_bind', 1);
     }
     if (!verify_cookie($cookie)) {
         showmessage('无法登陆百度贴吧,请检查 Cookie 是否填写正确', './#baidu_bind', 1);
     }
     $cookie = daddslashes($cookie);
     DB::query("UPDATE member SET cookie='{$cookie}' WHERE uid='{$uid}'");
     CACHE::update('cookie');
     showmessage('您的 Cookie 信息已经更新<script type="text/javascript" src="?action=refresh_liked_tieba&formhash=' . $formhash . '"></script>', './#baidu_bind', 1);
     break;
 case 'update_setting':
     if ($_POST['formhash'] != $formhash) {
         break;
     }
     DB::update('member_setting', array('error_mail' => $_POST['error_mail'] ? 1 : 0, 'send_mail' => $_POST['send_mail'] ? 1 : 0, 'zhidao_sign' => $_POST['zhidao_sign'] ? 1 : 0, 'wenku_sign' => $_POST['wenku_sign'] ? 1 : 0), "uid='{$uid}'");
     CACHE::save('user_setting_' . $uid, '');
     showmessage('设置已经保存', './#setting', 1);
     break;
 case 'change_password':
     if ($_POST['formhash'] != $formhash) {
         break;
     }
     if (!$_POST['old_password']) {