예제 #1
0
        Lib_Mobile::jsonRet($ret, 0);
    }
    $userInfo['isFirst'] = 1;
    //用户注册上报
    DCDATA && @Data_Dcdata::factory($api)->sendNewLog('user_signup', array('uid' => $userInfo['mid'], 'platform_uid' => $userInfo['sitemid'], 'signup_at' => time(), 'ip' => Helper::getip(), 'entrance_id' => $sid, 'version_info' => $version, 'm_imei' => $imei));
}
if ($userInfo['mstatus'] == 1) {
    $ret['code'] = '-10';
    $ret['noAllowLogin'] = 1;
    $ret['msg'] = Core_Loginerror::$forbidden;
    Lib_Mobile::jsonRet($ret, 0);
}
//用户登陆上报
DCDATA && @Data_Dcdata::factory($api)->sendNewLog('user_login', array('uid' => $userInfo['mid'], 'platform_uid' => $userInfo['sitemid'], 'login_at' => time(), 'ip' => Helper::getip(), 'entrance_id' => $sid, 'version_info' => $version, 'user_gamecoins' => $userInfo['money'], 'm_imei' => $imei));
if (empty($param['imei'])) {
    Logs::factory()->debugNew("imei", $param);
}
//渠道推广上报
if (DCHANNEL) {
    if ($appid && $appKey && $mobid) {
        $aData = array('appid' => $appid, 'appkey' => $appKey, 'mobid' => $mobid, 'userid' => $userInfo['mid'], 'ip' => Helper::getip(), 'isFirst' => $userInfo['isFirst'] ? 1 : 0);
        $sData = json_encode($aData);
        Data_Cache::redisChannel()->lPush(Data_Keys::$channelKey, $sData);
        Data_Cache::redisChannel()->set(Data_Keys::$channelPerKey . $userInfo['mid'], json_encode(array('appid' => $appid, 'appkey' => $appKey, 'mobid' => $mobid)));
        //保存用户登陆的appid和key
        Data_Cache::redisChannel()->setTimeout(Data_Keys::$channelPerKey . $userInfo['mid'], 3600);
    }
}
Mobile_Member::factory()->loginBid($userInfo['mid'], $api);
$userInfo['result'] = 1;
$userInfo['loginType'] = 3;
예제 #2
0
 /**
  * 设置access_token
  * @author functions
  * @param unknown_type $secret
  * @return unknown
  */
 public function setAccessTokenn($secret)
 {
     try {
         $result = $this->setAccessToken($secret);
         return true;
     } catch (FacebookApiException $e) {
         Logs::factory()->debug('email/emailerror', $e);
         return false;
     }
 }
예제 #3
0
파일: member.php 프로젝트: hamily/sblack
 /**
  * 更新用戶資料 js取了之後發過來
  * @param $aInfo array()
  */
 public function update($aInfo)
 {
     $flag = 0;
     if (empty($aInfo)) {
         return false;
     }
     $sitemid = $aInfo['id'] ? $aInfo['id'] : $aInfo['sitemid'];
     if (!$sitemid) {
         return $flag;
     }
     $time = time();
     $sid = $aInfo['sid'] ? $aInfo['sid'] : PLATFORM_ID;
     if ($aInfo['mid']) {
         $userinfo = $this->getOneById($aInfo['mid'], false);
     } else {
         $userinfo = $this->getOneBySitemid($sitemid, $sid, false);
     }
     $mid = $userinfo['mid'];
     Logs::factory()->debug('updateuser', $aInfo['sex']);
     $sex = $userinfo['sex'] = Core_Member::factory()->getGender($aInfo['sex']);
     Logs::factory()->debug('updateuser', $sex);
     $unid = $userinfo['unid'] = Helper::uint($aInfo['unid']);
     //子站ID
     $mnick = $userinfo['mnick'] = Loader_Mysql::dbmaster()->escape($aInfo['name']);
     //用戶別名
     $name = $userinfo['name'] = Loader_Mysql::dbmaster()->escape($aInfo['username']);
     //用戶姓名
     $icon = $userinfo['icon'] = Loader_Mysql::dbmaster()->escape($aInfo['icon']);
     //小頭像
     $middle = $userinfo['middle'] = Loader_Mysql::dbmaster()->escape($aInfo['middle']);
     //中頭像
     $big = $userinfo['big'] = Loader_Mysql::dbmaster()->escape($aInfo['big']);
     //大頭像
     $location = isset($userInfo['location']['name']) ? $userInfo['location']['name'] : $userInfo['location'];
     $userDetail['location'] = iconv('GB2312', 'UTF-8', $location);
     $hometown = isset($userInfo['hometown']['name']) ? $userInfo['hometown']['name'] : $userInfo['hometown'];
     $userDetail['hometown'] = iconv('GB2312', 'UTF-8', $hometown);
     $email = Loader_Mysql::dbmaster()->escape($aInfo['email']);
     //郵件地址
     $locale = Core_Member::factory()->getLocale($aInfo['locale']);
     $tmpprofile = empty($aInfo['link']) ? "https://www.facebook.com/profile.php?id=" . $sitemid : Loader_Mysql::dbmaster()->escape($aInfo['link']);
     $profile = $userinfo['profile'] = $tmpprofile;
     //添加用户email信息
     if (!empty($email)) {
         $sql = "INSERT DELAYED INTO {$this->membermail} SET mid={$mid},email='{$email}',mactivetime={$time} ON DUPLICATE KEY UPDATE email='{$email}',mactivetime={$time}";
         Loader_Mysql::dbmaster()->query($sql);
     }
     //更新members表
     $sql = "UPDATE LOW_PRIORITY {$this->members} SET mnick='{$mnick}',name='{$mnick}' WHERE mid={$mid} LIMIT 1";
     Loader_Mysql::dbmaster()->query($sql);
     //更新memberfield表
     $sql = "UPDATE LOW_PRIORITY {$this->memberfield} SET sex={$sex},location='{$location}',hometown='{$hometown}',muchid={$locale} WHERE mid={$mid} LIMIT 1";
     Logs::factory()->debug('updateuser', $sql);
     Loader_Mysql::dbmaster()->query($sql);
     //更新cache
     $cacheKey = Core_Keys::getOneById($mid);
     $flag = Loader_Memcached::minfo($mid)->set($cacheKey, Values::combine(Values::getmb(), $userinfo), 10 * 24 * 3600);
     return $flag;
 }
예제 #4
0
 /**
  * [resetLogin 令牌过期,重新登录,生成令牌]
  *
  * @author 
  * 
  * @return [void] 获得access_token信息
  */
 private function resetLogin()
 {
     // no session exists
     try {
         $this->helper->disableSessionStatusCheck();
         $this->session = $this->helper->getSessionFromRedirect();
         if (!isset($this->session) || $this->session === null) {
             $this->toAuth($this->facebook_default_scope);
         }
     } catch (FacebookRequestException $ex) {
         // When Facebook returns an error
         // handle this better in production code
         Logs::factory()->debug("facebookapi", $ex->getMessage());
         //exit($ex->getMessage());
     } catch (Exception $ex) {
         // When validation fails or other local issues
         // handle this better in production code
         Logs::factory()->debug("facebookapi2", $ex->getMessage());
         //exit($ex->getMessage());
     }
 }
예제 #5
0
 /**
  * 实际做的发送操作
  * @param String $ip
  * @param int $port
  * @param GameSocketPacket $packet
  * @return Boolean
  */
 private function SendData($ip, $port, &$packet, $reuse = false)
 {
     if (!$this->connect($ip, $port, $reuse)) {
         return false;
     }
     if (@socket_write($this->aSockets[$ip][$port], $packet->GetPacketBuffer(), $packet->GetPacketSize()) === false) {
         Logs::factory()->debug(@implode('-', array(socket_strerror(socket_last_error()), __LINE__)), 'C_sendData.txt');
         return false;
     }
     return true;
 }
예제 #6
0
파일: myzone.php 프로젝트: hamily/sblack
 /**
  * 致命错误中断
  */
 public function error_print($description)
 {
     Logs::factory()->debug(json_encode(array("Error: {$description}", 'time' => date("Y-m-d", time()), 'sitemid' => $this->getUser())), "pay.ErrorDebug");
 }
예제 #7
0
파일: watchdog.php 프로젝트: hamily/sblack
        if (!($param = self::${$act_name})) {
            return false;
        }
        $signValue = self::$pconfig[4];
        $postUrl = '';
        foreach ((array) $arrays as $key => $array) {
            if (in_array($key, $param['param'])) {
                $signValue .= $array;
            }
            $postUrl .= '/' . $array;
        }
        $signValue .= self::$pconfig[5];
        return $param['url'] . self::$pconfig[4] . '/' . md5($signValue) . $postUrl;
    }
    /**
	 * boyaa log report
	 * 
	 * 向日志服务器上游戏报日志
	 *
	 * @game_data array 关联数组,游戏数据,最终通过byl_encode_argument()去掉\r, \n, |并且json格式上报给日志服务器
	 * @act_name string API名称
	 * @bpid string 32位,由数据中心分配给相应用产品线
	 * @keep_socket 默认为false, false:发送后关闭socket连接 true:保持socket链接在一个PHP的生命周期
	 * @error_code 引用错误代码 
	 * @error_message 引用错误信息
	 * @host 日志服务器绑定Ip。一般使用默认127.0.0.1即可。
	 * @port 日志服务器绑定端口.一般使用默认端口号即可
	 **/
    function byl_watchdog($act_name, $game_data, $keep_socket = false, &$error_code = 0, &$error_message = '', $host = '127.0.0.1', $port = 1106)
    {
        if ($act_name == "user_signup") {
            Logs::factory()->debug("updata/register", $game_data, self::$pconfig);
        }
        static $socket = null;
        $bpid = self::$pconfig[4];
        if (strlen($bpid) != 32) {
            $error_code = 10002;
            $error_message = "valid bpid({$bpid})";
            Logs::factory()->debug('updata/error10002', $bpid);
            return false;
        }
        if (empty($game_data) || !is_array($game_data)) {
            $error_code = 10003;
            $error_message = "empty game data";
            Logs::factory()->debug('updata/error10003', $game_data);
            return false;
예제 #8
0
 /**
  * 业务错误日志上报
  * @param  [type] $mode      [description]
  * @param  [type] $error_msg [description]
  * @return [type]            [description]
  */
 private function error_log($mode, $errors = '', $params_error = '')
 {
     $array = array('time' => date('Y-m-d H:i:s'), 'error' => $errors, 'api' => $params_error);
     if (self::ISOPENLOGS === true && class_exists('Kkdatacenter_Module')) {
         Kkdatacenter_Module::factory()->sendNewLog('guest_error', $mode, $array);
     } else {
         Logs::factory()->debug($array, 'guest_error_' . $mode);
     }
 }
예제 #9
0
파일: packer.php 프로젝트: hamily/sblack
 /**
  * 单纯发头部命令
  **/
 public function sendHeader($mid, $port)
 {
     if (!($mid = Helper::uint($mid)) || empty($port)) {
         return false;
     }
     $body = array(array($mid, API_INT));
     $buffer = '';
     //获得BODY长度
     $this->_head = "";
     $this->_body = "";
     $this->setBody($body);
     $len = $this->getBodyLen($body);
     //设置头部HEADER
     $this->setHeader($len, CLIENT_COMMAND_PHP_SEND_GIFE);
     $checkcode = $this->encryptData($len);
     //设置校验码
     $this->setCheckcode($checkcode);
     //获得全部数据
     $string = Packer::factory()->getPackage();
     //发起socket
     //if(!Socket::factory()->isConnect()){
     Socket::factory()->set_server(Core_Game::$serverIP, $port);
     Socket::factory()->connect();
     Logs::factory()->debug('packer/socketheader', Socket::factory()->get_errmsg(), Core_Game::$serverIP, $port);
     //}
     //发送内容
     $ret = Socket::factory()->write_line($string);
     $buffer = Socket::factory()->read_line_str(JW_HEADER_LEN + $len);
     Socket::factory()->close();
     $decrypt = $this->decryptData($buffer, JW_SOCKET_BACK_LEN, 'back');
     Logs::factory()->debug('packer/header', $decrypt);
     return $decrypt;
 }