/** * 获得ZOL用户的的绑定信息 */ public static function getUserApiId($paramArr) { $options = array('z_bind_userid' => '', 'num' => 1, 'type' => 'xinge'); if (is_array($paramArr)) { $options = array_merge($options, $paramArr); } extract($options); if (!$z_bind_userid) { return false; } $db = API_Db_User::instance(); $sql = "select * from z_push_user_token where z_bind_userid = '{$z_bind_userid}' \n\t\t\t\t\tand z_api_type = '{$type}' limit {$num}"; return $db->getAll($sql); }
/** * 根据sinaId获取zoluserid * @param unknown_type $paramArr */ public static function getUserIdBySid($paramArr) { $options = array('sid' => ''); if (is_array($paramArr)) { $options = array_merge($options, $paramArr); } extract($options); $db = API_Db_User::instance(); #获得API id return $db->getOne("select z_bind_userid from z_login_api where z_api_id = '{$sid}' and z_api_type='sina'"); }
/** * 设置ljl用户id和微信OPENID的映射 */ public static function setLJLUserOpenIdMap($paramArr) { $options = array('appId' => '', 'openId' => '', 'userId' => ''); if (is_array($paramArr)) { $options = array_merge($options, $paramArr); } extract($options); $db = API_Db_User::instance(); $db->query("insert into weixin_user_map(appid,openid,ljluserid,tm) \r\n values( '{$appId}','{$openId}','{$userId}'," . SYSTEM_TIME . ")"); return true; }
/** * 修改zol用户id和微信OPENID的映射 */ public static function deleteZolUserOpenIdMap($paramArr) { $options = array('appId' => '', 'openId' => '', 'userId' => ''); if (is_array($paramArr)) { $options = array_merge($options, $paramArr); } extract($options); $db = API_Db_User::instance(); $deleteSql = "DELETE FROM z_weixin_user_map WHERE zoluserid='{$userId}' AND appid='{$appId}' AND openid='{$openId}' LIMIT 1"; $db->query($deleteSql); return true; }
/** * 获得一个随机的AccessToken,有些接口需要一个AccessToken,所以从用户库中获得一个可用的Token */ private static function getRdmAccessToken() { if (self::$rdmAccessToken) { return self::$rdmAccessToken; } $db = API_Db_User::instance(); self::$rdmAccessToken = $db->getOne("select api_token from `api_user_map` where api_type='sina' order by id desc limit 1"); return self::$rdmAccessToken; }
public static function Login($User, $Password) { self::$_dbUser = API_Db_User::instance(); if ($User) { $backUrl = $_SERVER["HTTP_REFERER"]; //第一步:验证用户名和密码 $strsql = "select UserID,Password,nickname,checkcode,UNIX_TIMESTAMP(LastLogin) as lastlogin,is_del , sid\n from UserInfo where UserID = '{$User}'"; $flag = 0; if ($rows = self::$_dbUser->getRow($strsql)) { $UserID = $rows['UserID']; $pwd = $rows['Password']; $is_del = $rows['is_del']; $nickname = $rows['nickname']; $md_pwd = md5(md5($Password . "zol") . $User); $md_pwd = substr($md_pwd, 0, 16); if ($pwd == $Password && $is_del == 0 || $pwd == $md_pwd && $is_del == 0) { //$check = $rows['checkcode']; srand((double) microtime() * 1000000); $check = rand(); $cipher = md5(md5(self::ZOL_USER_KEY . $check) . $UserID . self::ZOL_USER_KEY); setcookie("zol_cipher", $cipher, SYSTEM_TIME + 86400, "/", ".zol.com.cn"); setcookie("zol_userid", $UserID, SYSTEM_TIME + 86400, "/", ".zol.com.cn"); setcookie("zol_check", $check, SYSTEM_TIME + 86400, "/", ".zol.com.cn"); setcookie("zol_nickname", $nickname, SYSTEM_TIME + 86400, "/", ".zol.com.cn"); $sql = "update UserInfo set checkcode = '{$check}',LastLogin='******' where UserID = '{$UserID}'"; self::$_dbUser->query($sql); //支持多环境登录 if ($rows['sid']) { $dateTime = SYSTEM_TIME; $checkcodeTable = "z_checkcode_" . ceil($rows['sid'] / 1000000); $sql = "CREATE TABLE if not exists `{$checkcodeTable}` (\n\t\t\t\t\t\t\t `z_id` int(10) NOT NULL auto_increment,\n\t\t\t\t\t\t\t `z_uid` int(10) unsigned NOT NULL default '0' COMMENT '用户id',\n\t\t\t\t\t\t\t `z_checkcode` bigint(20) unsigned default NULL COMMENT '登录check码',\n\t\t\t\t\t\t\t `z_time` int(10) unsigned NOT NULL default '0' COMMENT '时间',\n\t\t\t\t\t\t\t PRIMARY KEY (`z_id`),\n\t\t\t\t\t\t\t KEY `uid` (`z_uid`,`z_checkcode`),\n\t\t\t\t\t\t\t KEY `time` (`z_time`)\n\t\t\t\t\t\t\t ) ENGINE=MyISAM DEFAULT CHARSET=latin1 comment '登录check码表'"; self::$_dbUser->query($sql); $sql = "insert into {$checkcodeTable} (z_uid, z_checkcode, z_time) values ({$rows['sid']}, {$check}, {$dateTime}) "; self::$_dbUser->query($sql); $sql = "select count(*) from {$checkcodeTable} where z_uid={$rows['sid']} "; $totalCheckNum = (int) self::$_dbUser->getOne($sql); if ($totalCheckNum > 10) { $deleteNum = $totalCheckNum - 10; $sql = "delete from {$checkcodeTable} where z_uid={$rows['sid']} order by z_id asc limit {$deleteNum}"; self::$_dbUser->query($sql); } } /* 记录登录 */ $login_log_table = "user_login_log" . date("Y"); $sql = "CREATE TABLE if not exists {$login_log_table} (\n\t\t\t\t\t\t\t `sid` int(11) NOT NULL auto_increment,\n\t\t\t\t\t\t\t `userid` varchar(20) NOT NULL default '',\n\t\t\t\t\t\t\t `ip` varchar(15) NOT NULL default '',\n\t\t\t\t\t\t\t `wdate` datetime NOT NULL default '0000-00-00 00:00:00',\n\t\t\t\t\t\t\t `ref_url` varchar(100) NOT NULL default '',\n\t\t\t\t\t\t\t PRIMARY KEY (`sid`),\n\t\t\t\t\t\t\t KEY `userid` (`userid`),\n\t\t\t\t\t\t\t KEY `wdate` (`wdate`)\n\t\t\t\t\t\t\t) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='网友登录记录表'"; self::$_dbUser->query($sql); $sql = "insert into {$login_log_table} (userid,ip,wdate,ref_url) values ('{$UserID}','" . $_SERVER["REMOTE_ADDR"] . "','" . SYSTEM_DATE . "','" . $_SERVER['REQUEST_URL'] . "')"; self::$_dbUser->query($sql); $return_val = 1; //表示用户名和密码正确,登录成功 } else { $return_val = 0; //密码错误 } } else { $return_val = 0; //用户名不存在 } } else { $return_val = -1; //没有输入用户名 } return $return_val; }