Exemple #1
0
    $user and message(1, 'EMAIL 已经注册。');
    if ($method == 'GET') {
        include './flarum/view/user_setpw.htm';
    } else {
        // 已经加密过的
        $password = param('password');
        strlen($password) != 32 and message(1, '密码格式不正确。');
        // email 注册
        $salt = rand(100000, 999999);
        $pwd = md5($password . $salt);
        $user = array('username' => $email, 'email' => $email, 'password' => $pwd, 'salt' => $salt, 'gid' => 101, 'create_ip' => $longip, 'create_date' => $time, 'logins' => 1, 'login_date' => $time, 'login_ip' => $longip);
        $uid = user_create($user);
        $uid === FALSE and message(1, '用户注册失败。');
        $user = user_read($uid);
        $gid = $user['gid'];
        $user['token'] = user_token_set($uid, $gid, $user['password'], $user['avatar'], $user['username'], 'bbs');
        // 更新在线
        online_list_cache_delete();
        online_unset('create_email');
        online_unset('create_verifycode');
        message(0, $user);
    }
    // 退出
} elseif ($action == 'logout') {
    $user = user_guest();
    user_token_clean();
    $uid = 0;
    $gid = 0;
    // 更新在线
    online_save(TRUE);
    online_list_cache_delete();
$grouplist = group_list_cache();
$forumlist = forum_list_cache();
$action = param('action');
$http_url_path = http_url_path();
$return_url = $http_url_path . 'qq_login.php?action=return_url';
if ($action == 'login') {
    $link = qq_login_link($return_url);
    header("Location: {$link}");
    // return url
} elseif ($action == 'return_url') {
    $qq = kv_get('qq_login');
    $appid = $qq['appid'];
    $appkey = $qq['appkey'];
    //$state = param('state');
    $code = param('code');
    // token 保存起来,提高速度
    $token = qq_login_get_token($appid, $appkey, $code, $return_url);
    !$token and message($errno, $errstr);
    // 获取 openid
    $openid = qq_login_get_openid_by_token($token);
    // 如果有 openid,则直接自动登陆
    $user = qq_login_read_user_by_openid($openid);
    if (!$user) {
        $qquser = qq_login_get_user_by_openid($openid, $token, $appid);
        $user = qq_login_create_user($qquser['nickname'], $qquser['figureurl_qq_2'], $openid);
    }
    $r = user_token_set($user['uid'], $user['gid'], $user['password'], $user['avatar'], $user['username'], 'bbs');
    // 登陆成功
    header('Location: ../../');
    exit;
}