Beispiel #1
0
 /**
  * (non-PHPdoc)
  * @see \tfc\mvc\interfaces\Action::run()
  */
 public function run()
 {
     $install = DIR_ROOT . DS . 'webroot' . DS . 'install.php';
     $this->assign('install', $install);
     $sysInfo = Options::getSysInfo();
     $devInfo = Options::getDevInfo();
     $this->assign('sys_info', $sysInfo);
     $this->assign('dev_info', $devInfo);
     $this->render();
 }
Beispiel #2
0
 /**
  * 发送邮件
  * @param string $toMail
  * @param string $subject
  * @param string $body
  * @return boolean
  */
 public static function sendMail($toMail, $subject, $body)
 {
     $smtp = null;
     if ($smtp === null) {
         $smtp = new Smtp(Options::getSmtpHost(), Options::getSmtpUsername(), Options::getSmtpPassword());
     }
     try {
         return $smtp->sendMail($toMail, $subject, $body);
     } catch (ErrorException $e) {
         Log::warning(sprintf('Tools sendMail Failed, SmtpHost: "%s", Message: "%s"', $smtp->getHost(), $e->getMessage()), $e->getCode(), __METHOD__);
     }
     return false;
 }
Beispiel #3
0
 /**
  * (non-PHPdoc)
  * @see \tfc\mvc\interfaces\Action::run()
  */
 public function run()
 {
     $req = Ap::getRequest();
     $cookie = new Cookie('cookie');
     $appid = Cfg::getApp('appid', 'qq', 'extlogin');
     $appkey = Cfg::getApp('appkey', 'qq', 'extlogin');
     $callback = Options::getSiteUrl() . '/index.php?r=member/data/qqcallback';
     if ($cookie->get('state') !== $req->getParam('state')) {
         exit('The state does not match. You may be a victim of CSRF.');
     }
     $tokenUrl = 'https://graph.qq.com/oauth2.0/token?grant_type=authorization_code' . '&client_id=' . $appid . '&redirect_uri=' . urlencode($callback) . '&client_secret=' . $appkey . '&code=' . $req->getParam('code');
     $response = file_get_contents($tokenUrl);
     if (strpos($response, 'callback') !== false) {
         $lpos = strpos($response, '(');
         $rpos = strrpos($response, ')');
         $response = substr($response, $lpos + 1, $rpos - $lpos - 1);
         $msg = json_decode($response);
         if (isset($msg->error)) {
             echo '<h3>error:</h3>' . $msg->error;
             echo '<h3>msg  :</h3>' . $msg->error_description;
             exit;
         }
     }
     $params = array();
     parse_str($response, $params);
     $graphUrl = 'https://graph.qq.com/oauth2.0/me?access_token=' . $params['access_token'];
     $str = file_get_contents($graphUrl);
     if (strpos($str, 'callback') !== false) {
         $lpos = strpos($str, '(');
         $rpos = strrpos($str, ')');
         $str = substr($str, $lpos + 1, $rpos - $lpos - 1);
     }
     $user = json_decode($str);
     if (isset($user->error)) {
         echo '<h3>error:</h3>' . $user->error;
         echo '<h3>msg  :</h3>' . $user->error_description;
         exit;
     }
     $openid = $user->openid;
     $mod = Model::getInstance('Account', 'member');
     $ret = $mod->extlogin(DataAccount::PARTNER_QQ, $openid);
     if ($ret['err_no'] === DataAccount::SUCCESS_LOGIN_NUM) {
         $httpReferer = HttpCookie::get('http_referer', 'index.php');
         HttpCookie::remove('http_referer');
         Ap::getResponse()->location($httpReferer);
     } else {
         Ap::getResponse()->location('index.php?r=member/show/login');
     }
 }
Beispiel #4
0
 /**
  * (non-PHPdoc)
  * @see \tfc\mvc\interfaces\Action::run()
  */
 public function run()
 {
     $cookie = new Cookie('cookie');
     $httpReferer = Ap::getRequest()->getTrim('http_referer');
     if ($httpReferer === '') {
         $httpReferer = 'index.php';
     }
     HttpCookie::add('http_referer', $httpReferer);
     $appid = Cfg::getApp('appid', 'wechat', 'extlogin');
     $callback = Options::getSiteUrl() . '/index.php?r=member/data/wechatcallback';
     $scope = 'snsapi_base';
     $state = md5(uniqid(rand(), TRUE));
     //CSRF protection
     $cookie->add('state', $state);
     $loginUrl = 'https://open.weixin.qq.com/connect/oauth2/authorize?response_type=code' . '&appid=' . $appid . '&redirect_uri=' . urlencode($callback) . '&state=' . $state . '&scope=' . $scope . '#wechat_redirect';
     Ap::getResponse()->location($loginUrl);
 }
Beispiel #5
0
 /**
  * (non-PHPdoc)
  * @see \tfc\mvc\interfaces\Action::run()
  */
 public function run()
 {
     $cookie = new Cookie('cookie');
     $httpReferer = Ap::getRequest()->getTrim('http_referer');
     if ($httpReferer === '') {
         $httpReferer = 'index.php';
     }
     HttpCookie::add('http_referer', $httpReferer);
     $appid = Cfg::getApp('appid', 'qq', 'extlogin');
     $callback = Options::getSiteUrl() . '/index.php?r=member/data/qqcallback';
     $scope = 'get_user_info';
     $state = md5(uniqid(rand(), TRUE));
     //CSRF protection
     $cookie->add('state', $state);
     $loginUrl = 'https://graph.qq.com/oauth2.0/authorize?response_type=code' . '&client_id=' . $appid . '&redirect_uri=' . urlencode($callback) . '&state=' . $state . '&scope=' . $scope;
     Ap::getResponse()->location($loginUrl);
 }
Beispiel #6
0
 /**
  * 生成文字水印
  * @param string $source
  * @param string $toPath
  * @return string|false
  */
 public static function water($source, $toPath = null)
 {
     $type = Options::getWaterMarkType();
     if ($type !== DataOptions::WATER_MARK_TYPE_IMGDIR && $type !== DataOptions::WATER_MARK_TYPE_TEXT) {
         return false;
     }
     $position = Options::getWaterMarkPosition();
     if ($position < 1 || $position > 9) {
         return false;
     }
     $offset = 1;
     if ($toPath === null) {
         $toPath = dirname($source) . DS . 'water_' . basename($source);
     }
     if ($type === DataOptions::WATER_MARK_TYPE_TEXT) {
         $text = Options::getWaterMarkText();
         if ($text !== '') {
             $fontFile = Cfg::getApp('fontfile');
             if (ImageManager::textWater($source, $text, $fontFile, $toPath, $position, $offset)) {
                 return $toPath;
             }
         }
     } elseif ($type === DataOptions::WATER_MARK_TYPE_IMGDIR) {
         $water = Options::getWaterMarkImgdir();
         if ($water !== '') {
             $pct = max(Options::getWaterMarkPct(), 0);
             if (ImageManager::imageWater($source, $water, $toPath, $position, $offset, $pct)) {
                 return $toPath;
             }
         }
     }
     return false;
 }
Beispiel #7
0
 /**
  * 将常用数据设置到模板变量中
  * @return void
  */
 public function assignSystem()
 {
     $viw = Mvc::getView();
     $viw->assign('app', APP_NAME);
     $viw->assign('module', Mvc::$module);
     $viw->assign('controller', Mvc::$controller);
     $viw->assign('action', Mvc::$action);
     $viw->assign('sidebar', Mvc::$module . '/' . Mvc::$action . '_sidebar');
     $viw->assign('log_id', Log::getId());
     $viw->assign('language', Ap::getLanguageType());
     $viw->assign('urlHelper', UrlHelper::getInstance());
     $viw->assign('site_name', Options::getSiteName());
     if (!isset($viw->meta_title)) {
         $viw->assign('meta_title', Options::getMetaTitle());
     }
     if (!isset($viw->meta_keywords)) {
         $viw->assign('meta_keywords', Options::getMetaKeywords());
     }
     if (!isset($viw->meta_description)) {
         $viw->assign('meta_description', Options::getMetaDescription());
     }
     $viw->assign('powerby', Options::getPowerby());
     $viw->assign('stat_code', Options::getStatCode());
     if (($wfBackTrace = Registry::get('warning_backtrace')) !== null) {
         $viw->assign('warning_backtrace', $wfBackTrace);
     }
 }
Beispiel #8
0
 /**
  * 发送邮件
  * @param string $memberMail
  * @return integer
  */
 public function sendMail($memberMail)
 {
     $ret = $this->encryptMail($memberMail);
     if ($ret['err_no'] !== DataRepwd::SUCCESS_REPWD_NUM) {
         $ret['err_msg'] = DataRepwd::getErrMsgByErrNo($ret['err_no']);
         unset($ret['ciphertext']);
         return $ret;
     }
     $url = Options::getSiteUrl() . '?r=member/show/repwdmail&cipher=' . $ret['ciphertext'];
     $subject = Lang::_('SRV_FILTER_REPWD_REPWD_LABEL');
     $body = $subject . ': ' . $url;
     if (!Tools::sendMail($memberMail, $subject, $body)) {
         $errNo = DataRepwd::ERROR_SEND_MAIL_FAILED;
         Log::warning(sprintf('Repwd send mail failed, member_mail "%s"', $memberMail), $errNo, __METHOD__);
         return array('err_no' => $errNo, 'err_msg' => DataRepwd::getErrMsgByErrNo($errNo));
     }
     $mailHost = substr($memberMail, strpos($memberMail, '@') + 1);
     $errNo = DataRepwd::SUCCESS_REPWD_NUM;
     $errMsg = Lang::_('SRV_FILTER_REPWD_SEND_MAIL_SUCCESS') . '&nbsp;&nbsp;' . '<a href="http://' . $mailHost . '">' . $mailHost . '</a>';
     return array('err_no' => $errNo, 'err_msg' => $errMsg);
 }