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; }
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!', './'); }
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); }
} 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);
function saveSetting($k, $v) { $v = addslashes($v); DB::query("REPLACE INTO setting SET v='{$v}', k='{$k}'"); CACHE::update('setting'); }
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); } } } }
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']) {