Beispiel #1
0
 /**
  * 获得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);
 }
Beispiel #2
0
 /**
  * 根据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'");
 }
Beispiel #3
0
 /**
  * 设置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;
 }
Beispiel #4
0
 /**
  * 修改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;
 }
Beispiel #5
0
 /**
  * 获得一个随机的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;
 }
Beispiel #6
0
 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;
 }