public function __construct() { $ser = $this; //读取请求之前,验证是否多点登录 //在执行controller 逻辑之前判断 self::rEvent('E_BCR', function () use($ser) { if ($_REQUEST['__noauth__'] == 1) { return; } $app = app(); $sec = $app->getsec(); $uid = $app->getuid(); $um = new model_LoginUser($uid); $d = $um->get(); if ($d['isban']) { exit(0); } //合服阻挡进入 $filter_config = dzm_base::load_config('mergesec', 'prevent_enter'); model_Util::preventEnter($filter_config, $sec, $uid); $cm = $app->vget('CM'); $cc = $app->vget('CC'); if ($app->vget('RESOVER')) { return; } $iccs = $app->vget('ICCS'); $icms = $app->vget('ICMS'); $skip_sig_check_method = $app->vget('skip_sig_check_method'); $skip_sig_check_controller = $app->vget('skip_sig_check_controller'); if (!isset($skip_sig_check_method[$cm]) && !isset($skip_sig_check_controller[$cc])) { // 验证数据签名 $req =& $app->vget('REQARR'); $ret = $ser->authSig($req); if ($ret) { //glog::info(json_encode($ret),'sign'); //glog::info(json_encode($req),'sign'); $app->vset('RESARR', $ret); $ser->finishResponse(); exit(0); } } //do nothing , 登陆,打点,都没有session if ($cc == 'System' || $cc == 'Statistic') { return; } if (isset($iccs[$cc]) || isset($icms[$cm])) { $app->vset('NOLOG', true); return; } $sess = $app['session']; if ($sess->isDupLogin()) { $app->vset('RESARR', array('s' => 'dup')); $ser->finishResponse(); // exit(0); } }); //退出之前,结果已经返回客户端 self::rEvent('E_QUIT', function () { //记录日志,增加统计 $app = app(); $req =& $app->vget('REQARR'); $res =& $app->vget('RESARR'); $ss =& $app->vget('session'); $uid = $app->getuid(); $sec = $app->getsec(); $ltime = $app->getltime(); //本次登录时间 $cm = $app->vget('CM'); $s = $res['s']; $time = $_SERVER['REQUEST_TIME']; //全日志 /* TODO 做个开关,只针对一小部分人开启全日志 $hour = date('Ymd',$time); $request_end_time = microtime(true); glog::detail($uid,$sec,$cm,$request_end_time-$app->request_start_time,$req,$res); */ if ($uid == 68321 || $uid == 5225) { $req['_SERVER'] = $_SERVER; glog::detail($uid, $sec, $cm, $request_end_time - $app->request_start_time, $req, $res); } //处理统计, //todo:实时统计的东西也放到这里来 $stats =& $app->ref('STATS'); if ($stats) { foreach ($stats as &$object) { $object['_tm'] = $time; $object['_sec'] = $sec; $object['_u'] = $uid; $object['_cm'] = $cm; $object['_s'] = 'OK'; $object['_ver'] = P_VERSION; $object['_lvl'] = $_SESSION['lvl']; $object['_it'] = $_SESSION['init_time']; $object['_vip'] = $_SESSION['vip']; $object['istest'] = $_SESSION['istest']; $object['_source'] = $_SESSION['source']; try { // model_OpLog::add($object); } catch (Exception $ex) { //error_log($ex->getMessage()); error_log("记录日志出错"); error_log(json_encode($object)); } } // scribe关闭连接 try { model_StatLog::close(); } catch (Exception $ex) { error_log("scribe日志关闭出错"); } if ($s == 'OK') { return; } } if (!$cm) { return; } //明确的设置了不记录log if ($app->vget('NOLOG')) { return; } if ($app->vget['DEBUG']) { error_log("session: " . print_r($_SESSION, true) . "\n", 3, LOG_ROOT . "/debug.log"); } $logp =& $app->vget('LOGP'); if (!$logp) { $logp =& $req['p']; } $logp['_cm'] = $cm; $logp['_u'] = $uid; $logp['_sec'] = $sec; $logp['_s'] = $s; $logp['_tm'] = $time; $logp['msg'] = $res['msg']; // model_OpLog::add($logp); }); }
function actionsendallCdkeyActMsg() { $ymd = trim($_REQUEST['ymd']); $chuangshu = trim($_REQUEST['chuangshu']); $urlconfigs = dzm_base::load_config('system', 'platform_admin_url'); foreach ($urlconfigs as $plat => $url) { if ($plat == "dev") { $url .= "?mod=jsapi&action=SendMSGForCurl&ver=wyc_act&platform=dev&config=dev&ymd=" . $ymd . "&chuangshu=" . $chuangshu; } else { $url .= "?mod=jsapi&action=SendMSGForCurl&ymd=" . $ymd . "&chuangshu=" . $chuangshu; } //post 请求开始 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //需要获取的URL地址 //curl_setopt($ch, CURLOPT_POST, 1); //会发送一个常规的POST请求. //curl_setopt($ch, CURLOPT_POSTFIELDS, $json); //post参数 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //让curl_exec返回结果数据,而不是直接输出 curl_setopt($ch, CURLOPT_HEADER, false); //不输出文件头 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); //timeout on connect,单位秒,也可以设置毫秒,用CURLOPT_CONNECTTIMEOUT参数 curl_setopt($ch, CURLOPT_TIMEOUT, 60); //timeout on response,单位秒,也可以设置毫秒,用CURLOPT_TIMEOUT_MS参数 $result = curl_exec($ch); echo $result; //如果不出现timeout,服务器成功返回,则返回正常结果,格式是一个json串。 curl_close($ch); //关闭会话,释放资源 } }
/** * @author 符璨 * @desc * 执行给福利号用户发送奖励的定时任务 */ public static function action_awarduser_timer() { if (!dzm_base::load_config('system', 'open_fulihao_awards')) { return false; } //error_log("定时任务开始:"); $lm = new model_AwardUser(1); $lm->sendAwardByTask(); }