Ejemplo n.º 1
0
 function _initialize()
 {
     //先检查cookie
     if (!Cookie::is_set($_SESSION['cookietime'])) {
         redirect(PHP_FILE . C('USER_AUTH_GATEWAY'));
     } else {
         //保存cookie信息
         Cookie::set($_SESSION['cookietime'], '1', 60 * 60 * 3);
     }
     // 用户权限检查
     if (C('USER_AUTH_ON') && !in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE')))) {
         import('@.ORG.RBAC');
         if (!RBAC::AccessDecision()) {
             //检查认证识别号
             if (!$_SESSION[C('USER_AUTH_KEY')]) {
                 //跳转到认证网关
                 redirect(PHP_FILE . C('USER_AUTH_GATEWAY'));
             }
             // 没有权限 抛出错误
             if (C('RBAC_ERROR_PAGE')) {
                 // 定义权限错误页面
                 redirect(C('RBAC_ERROR_PAGE'));
             } else {
                 if (C('GUEST_AUTH_ON')) {
                     $this->assign('jumpUrl', PHP_FILE . C('USER_AUTH_GATEWAY'));
                 }
                 // 提示错误信息
                 $this->error(L('_VALID_ACCESS_'));
             }
         }
     }
 }
Ejemplo n.º 2
0
/**
+----------------------------------------------------------
* 检测浏览器语言
+----------------------------------------------------------
* @return string
+----------------------------------------------------------
*/
function detect_browser_language()
{
    if (isset($_GET[C('VAR_LANGUAGE')])) {
        $langSet = $_GET[C('VAR_LANGUAGE')];
        Cookie::set('l', $langSet);
    } else {
        if (!Cookie::is_set('l')) {
            preg_match('/^([a-z\\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
            $langSet = $matches[1];
            Cookie::set('l', $langSet);
        } else {
            $langSet = Cookie::get('l');
        }
    }
    return $langSet;
}
 public function run(&$params)
 {
     if ($_SERVER['REQUEST_METHOD'] == 'GET') {
         //	启用页面防刷新机制
         $guid = md5($_SERVER['PHP_SELF']);
         // 检查页面刷新间隔
         if (Cookie::is_set('_last_visit_time_' . $guid) && Cookie::get('_last_visit_time_' . $guid) > time() - C('LIMIT_REFLESH_TIMES')) {
             // 页面刷新读取浏览器缓存
             header('HTTP/1.1 304 Not Modified');
             exit;
         } else {
             // 缓存当前地址访问时间
             Cookie::set('_last_visit_time_' . $guid, $_SERVER['REQUEST_TIME'], $_SERVER['REQUEST_TIME'] + 3600);
             //header('Last-Modified:'.(date('D,d M Y H:i:s',$_SERVER['REQUEST_TIME']-C('LIMIT_REFLESH_TIMES'))).' GMT');
         }
     }
 }
 public function update()
 {
     if (empty($_POST)) {
         alert('请选择投票项!', 1);
     }
     inject_check($_POST['id']);
     if (Cookie::is_set('vote' . $_POST['id'])) {
         alert('您已投过票了!', 1);
     }
     //读取数据库
     $vote = M('vote');
     //if(C('TOKEN_ON') && !$vote->autoCheckToken($_POST)){$this->error(L('_TOKEN_ERROR_'));}//防止乱提交表单
     $vo = $vote->where('id=' . intval($_POST['id']))->field('vote,overtime,starttime,stype')->find();
     $strs = explode(PHP_EOL, trim($vo['vote']));
     //业务处理
     if (!$vo) {
         alert('投票不存在!', 3);
     }
     if ($vo['overtime'] != '' && cptime(date('Y-m-d H:i:s'), $vo['overtime'])) {
         alert('投票已结束!', U('votes/' . $_POST['id']));
     }
     if (!cptime(date('Y-m-d H:i:s'), $vo['starttime'])) {
         alert('投票没有开始!', U('votes/' . $_POST['id']));
     }
     $data['vote'] = $vo['vote'];
     if ($vo['stype'] == 0) {
         $_POST['vote'] = array($_POST['vote']);
     }
     foreach ($_POST['vote'] as $v) {
         $v = str_replace(PHP_EOL, "", $v);
         if (in_array($v, $strs)) {
             $s = explode("=", $v);
             if (count($s) == 2 && is_numeric($s[1])) {
                 $data['vote'] = str_replace($v, $s[0] . "=" . (intval($s[1]) + 1), $data['vote']);
             }
         }
     }
     if ($vote->where('id=' . intval($_POST['id']))->save($data)) {
         Cookie::set('vote' . $_POST['id'], '1', 365 * 60 * 60 * 24);
         alert('投票成功!', U('votes/' . $_POST['id']));
     }
     alert("操作失败!", U('votes/' . $_POST['id']));
 }
 function _initialize()
 {
     header("Content-type: text/html; charset=utf-8");
     //模拟关闭magic_quotes_gpc 不关闭有时视频用不起
     if (get_magic_quotes_gpc()) {
         $_GET = stripslashesRecursive($_GET);
         $_POST = stripslashesRecursive($_POST);
         $_COOKIE = stripslashesRecursive($_COOKIE);
     }
     import('ORG.Util.Cookie');
     //先检查cookie
     if (!Cookie::is_set($_SESSION['cookietime'])) {
         redirect(PHP_FILE . C('USER_AUTH_GATEWAY'));
     } else {
         //保存cookie信息
         Cookie::set($_SESSION['cookietime'], '1', 60 * 60 * 3);
     }
     // 用户权限检查
     if (C('USER_AUTH_ON') && !in_array(MODULE_NAME, explode(',', C('NOT_AUTH_MODULE')))) {
         import('ORG.Util.RBAC');
         if (!RBAC::AccessDecision()) {
             //检查认证识别号
             if (!$_SESSION[C('USER_AUTH_KEY')]) {
                 //跳转到认证网关
                 redirect(PHP_FILE . C('USER_AUTH_GATEWAY'));
             }
             // 没有权限 抛出错误
             if (C('RBAC_ERROR_PAGE')) {
                 // 定义权限错误页面
                 redirect(C('RBAC_ERROR_PAGE'));
             } else {
                 if (C('GUEST_AUTH_ON')) {
                     $this->assign('jumpUrl', PHP_FILE . C('USER_AUTH_GATEWAY'));
                 }
                 // 提示错误信息
                 $this->error(L('_VALID_ACCESS_'));
             }
         }
     }
 }
Ejemplo n.º 6
0
 public function update()
 {
     if (!isset($_GET['id'])) {
         alert('非法操作!', 3);
     }
     if (empty($_POST)) {
         alert('请选择投票项!', 1);
     }
     //读取数据库
     $vote = M('vote');
     $vo = $vote->where('id=' . $_GET['id'])->field('vote,overtime,starttime')->find();
     //业务处理
     if (!$vo) {
         alert('投票不存在!', 3);
     }
     if (cptime(date('Y-m-d H:i:s'), $vo['overtime'])) {
         alert('投票已结束!', U('votes/' . $_GET['id']));
     }
     if (!cptime(date('Y-m-d H:i:s'), $vo['starttime'])) {
         alert('投票没有开始!', U('votes/' . $_GET['id']));
     }
     if (Cookie::is_set('wkvote' . $_GET['id'])) {
         alert('您已投过票了!', 1);
     }
     $data['vote'] = $vo['vote'];
     foreach ($_POST as $k => $v) {
         $pattern = "/{$k}=[0-9]{1,}/";
         $v += 1;
         $replacement = $k . '=' . $v;
         $data['vote'] = preg_replace($pattern, $replacement, $data['vote']);
     }
     if ($vote->where('id=' . $_GET['id'])->save($data)) {
         Cookie::set('wkvote' . $_GET['id'], '1', 365 * 60 * 60 * 24);
         alert('投票成功!', U('votes/' . $_GET['id']));
     }
 }
Ejemplo n.º 7
0
 public function xh()
 {
     if (isset($_GET['id'])) {
         $id = I('get.id', '', 'int');
         if (!empty($id)) {
             $type = I('get.type');
             if (!empty($type)) {
                 $map['id'] = array('eq', $id);
                 $name = $this->getActionName();
                 switch ($type) {
                     case 'xh':
                         if (Cookie::is_set('xh' . $id)) {
                             $this->error('顶过了');
                         }
                         $result = D($name)->where($map)->setInc('xh', 1);
                         //更新喜欢人数
                         if ($result) {
                             $ip = get_client_ip();
                             Cookie::set('xh' . $id, $ip, 24 * 3600);
                             $num = D($name)->where($map)->getField('xh');
                             //喜欢人数
                             $this->success($num);
                         }
                         break;
                     case 'nxh':
                         if (Cookie::is_set('nxh' . $id)) {
                             $this->error('踩过了');
                         }
                         $result = D($name)->where($map)->setInc('nxh', 1);
                         //更新喜欢人数
                         if ($result) {
                             $ip = get_client_ip();
                             Cookie::set('nxh' . $id, $ip, 24 * 3600);
                             $num = D($name)->where($map)->getField('nxh');
                             //喜欢人数
                             $this->success($num);
                         }
                         break;
                 }
             }
         }
     }
 }
Ejemplo n.º 8
0
 /**
 +----------------------------------------------------------
 * 模板检查,如果不存在使用默认
 +----------------------------------------------------------
 * @access private 
 +----------------------------------------------------------
 * @return void
 +----------------------------------------------------------
 * @throws ThinkExecption
 +----------------------------------------------------------
 */
 private function checkTemplate()
 {
     if (C('TMPL_SWITCH_ON')) {
         // 启用多模版
         $t = C('VAR_TEMPLATE');
         if (isset($_GET[$t])) {
             $templateSet = $_GET[$t];
             Cookie::set('think_template', $templateSet, time() + 3600);
         } else {
             if (Cookie::is_set('think_template')) {
                 $templateSet = Cookie::get('think_template');
             } else {
                 $templateSet = C('DEFAULT_TEMPLATE');
                 Cookie::set('think_template', $templateSet, time() + 3600);
             }
         }
         if (!is_dir(TMPL_PATH . $templateSet)) {
             //模版不存在的话,使用默认模版
             $templateSet = C('DEFAULT_TEMPLATE');
         }
         //模版名称
         define('TEMPLATE_NAME', $templateSet);
         // 当前模版路径
         define('TEMPLATE_PATH', TMPL_PATH . TEMPLATE_NAME . '/');
         if (defined('C_MODULE_NAME')) {
             $array = explode(C('COMPONENT_DEPR'), C_MODULE_NAME);
             $tmplDir = TMPL_DIR . '/' . TEMPLATE_NAME . '/' . $array[0] . '/';
         } else {
             $tmplDir = TMPL_DIR . '/' . TEMPLATE_NAME . '/';
         }
     } else {
         // 把模版目录直接放置项目模版文件
         // 该模式下面没有TEMPLATE_NAME常量
         define('TEMPLATE_PATH', TMPL_PATH);
         $tmplDir = TMPL_DIR . '/';
     }
     //当前网站地址
     define('__ROOT__', WEB_URL);
     //当前项目地址
     define('__APP__', PHP_FILE);
     $module = defined('P_MODULE_NAME') ? P_MODULE_NAME : MODULE_NAME;
     $action = defined('P_ACTION_NAME') ? P_ACTION_NAME : ACTION_NAME;
     //当前页面地址
     define('__SELF__', $_SERVER['PHP_SELF']);
     // 默认加载的模板文件名
     if (defined('C_MODULE_NAME')) {
         // 当前模块地址
         define('__URL__', PHP_FILE . '/' . C_MODULE_NAME);
         //当前操作地址
         define('__ACTION__', __URL__ . '/' . $action);
         C('TMPL_FILE_NAME', TEMPLATE_PATH . '/' . str_replace(C('COMPONENT_DEPR'), '/', C_MODULE_NAME) . '/' . ACTION_NAME . C('TEMPLATE_SUFFIX'));
         define('__CURRENT__', WEB_URL . '/' . APP_NAME . '/' . $tmplDir . str_replace(C('COMPONENT_DEPR'), '/', C_MODULE_NAME));
     } else {
         // 当前模块地址
         define('__URL__', PHP_FILE . '/' . $module);
         //当前操作地址
         define('__ACTION__', __URL__ . '/' . $action);
         C('TMPL_FILE_NAME', TEMPLATE_PATH . '/' . MODULE_NAME . '/' . ACTION_NAME . C('TEMPLATE_SUFFIX'));
         define('__CURRENT__', WEB_URL . '/' . APP_NAME . '/' . $tmplDir . MODULE_NAME);
     }
     //网站公共文件地址
     define('WEB_PUBLIC_URL', WEB_URL . '/Public');
     //项目公共文件地址
     define('APP_PUBLIC_URL', WEB_URL . '/' . APP_NAME . '/' . $tmplDir . 'Public');
     return;
 }
Ejemplo n.º 9
0
 /**
 +----------------------------------------------------------
 * 设置活动id cookies 暂时只用于模板页面调用,待扩展
 +----------------------------------------------------------
 * @author wangcheng
 * @date:2012-04-28
 * @param string  $data
 +----------------------------------------------------------
 * @return json  返回ajax 或者其他格式
 +----------------------------------------------------------
 */
 function setActiveCookie($data = "", $ajax = true)
 {
     if (empty($data)) {
         $data = $this->escapeChar($_POST);
         foreach ($data as $k => $v) {
             if (Cookie::is_set($k)) {
                 Cookie::delete($k);
             }
             if ($v != '') {
                 Cookie::set($k, $v);
             }
         }
         //exit;
         $this->success(L('_SUCCESS_'), $ajax);
     } else {
         foreach ($data as $k => $v) {
             if (Cookie::is_set($k)) {
                 Cookie::delete($k);
             }
             if ($v != '') {
                 Cookie::set($k, $v);
             }
         }
     }
 }
Ejemplo n.º 10
0
 private function checkTemplate()
 {
     $defaultTplSet = C('DEFAULT_TEMPLATE');
     if (C('TMPL_SWITCH_ON')) {
         if (C('AUTO_DETECT_THEME')) {
             if (isset($_GET[C('VAR_TEMPLATE')])) {
                 $templateSet = $_GET[C('VAR_TEMPLATE')];
             } else {
                 if (Cookie::is_set('template')) {
                     $templateSet = Cookie::get('template');
                 } else {
                     $templateSet = $defaultTplSet;
                 }
             }
             if (!is_dir(TMPL_PATH . $templateSet)) {
                 $templateSet = $defaultTplSet;
             }
             Cookie::set('template', $templateSet, C('COOKIE_EXPIRE'));
         } else {
             $templateSet = $defaultTplSet;
         }
         define('TEMPLATE_NAME', $templateSet);
         define('TEMPLATE_PATH', TMPL_PATH . TEMPLATE_NAME);
         $tmplDir = THEMES_DIR . '/' . TEMPLATE_NAME . '/';
     } else {
         define('TEMPLATE_PATH', TMPL_PATH);
         $tmplDir = THEMES_DIR . '/';
     }
     define('__ROOT__', WEB_URL);
     define('__APP__', PHP_FILE);
     $module = defined('P_MODULE_NAME') ? P_MODULE_NAME : MODULE_NAME;
     $action = defined('P_ACTION_NAME') ? P_ACTION_NAME : ACTION_NAME;
     define('__SELF__', $_SERVER['PHP_SELF']);
     if (C('APP_DOMAIN_DEPLOY')) {
         $appRoot = '/';
     } else {
         $appRoot = WEB_URL . '/';
     }
     if (defined('C_MODULE_NAME')) {
         define('__URL__', PHP_FILE . '/' . C_MODULE_NAME);
         define('__ACTION__', __URL__ . C('PATH_DEPR') . $action);
         C('TMPL_FILE_NAME', LIB_PATH . COMPONENT_NAME . '/' . THEMES_DIR . '/' . TEMPLATE_NAME . '/' . MODULE_NAME . '/' . ACTION_NAME . C('TEMPLATE_SUFFIX'));
         define('APP_TMPL_URL', $appRoot . LIB_DIR . '/' . COMPONENT_NAME . '/' . THEMES_DIR . '/' . TEMPLATE_NAME . '/');
         define('__CURRENT__', WEB_URL . '/' . LIB_DIR . '/' . $tmplDir . str_replace(C('COMPONENT_DEPR'), '/', C_MODULE_NAME));
     } else {
         define('__URL__', PHP_FILE . '/' . $module);
         define('__ACTION__', __URL__ . C('PATH_DEPR') . $action);
         C('TMPL_FILE_NAME', TEMPLATE_PATH . '/' . MODULE_NAME . '/' . ACTION_NAME . C('TEMPLATE_SUFFIX'));
         define('__CURRENT__', WEB_URL . '/' . $tmplDir . MODULE_NAME);
         define('APP_TMPL_URL', $appRoot . $tmplDir);
     }
     define('WEB_PUBLIC_URL', WEB_URL . '/Public');
     define('APP_PUBLIC_URL', APP_TMPL_URL . 'Public');
     return;
 }
Ejemplo n.º 11
0
 /**
 +----------------------------------------------------------
 * 模板检查,如果不存在使用默认
 +----------------------------------------------------------
 * @access private
 +----------------------------------------------------------
 * @return void
 +----------------------------------------------------------
 */
 private function checkTemplate()
 {
     if (C('AUTO_DETECT_THEME')) {
         // 自动侦测模板主题
         $t = C('VAR_TEMPLATE');
         if (isset($_GET[$t])) {
             $templateSet = $_GET[$t];
             Cookie::set('think_template', $templateSet, time() + 3600);
         } else {
             if (Cookie::is_set('think_template')) {
                 $templateSet = Cookie::get('think_template');
             } else {
                 $templateSet = C('DEFAULT_TEMPLATE');
                 Cookie::set('think_template', $templateSet, time() + 3600);
             }
         }
         if (!is_dir(TMPL_PATH . $templateSet)) {
             //模版不存在的话,使用默认模版
             $templateSet = C('DEFAULT_TEMPLATE');
         }
     } else {
         $templateSet = C('DEFAULT_TEMPLATE');
     }
     //模版名称
     define('TEMPLATE_NAME', $templateSet);
     // 当前模版路径
     define('TEMPLATE_PATH', TMPL_PATH . TEMPLATE_NAME);
     $tmplDir = TMPL_DIR . '/' . TEMPLATE_NAME . '/';
     //当前网站地址
     define('__ROOT__', APP_ROOT);
     //thinksns修改:	由WEB_URL 换成 APP_ROOT
     //当前项目地址
     define('__APP__', PHP_FILE);
     //当前页面地址
     define('__SELF__', $_SERVER['PHP_SELF']);
     // 应用URL根目录
     if (C('APP_DOMAIN_DEPLOY')) {
         // 独立域名部署需要指定模板从根目录开始
         $appRoot = '/';
     } else {
         $appRoot = APP_URL . '/';
         //thinksns修改:	由WEB_URL.'/'.APP_NAME 换成 APP_URL
     }
     define('__URL__', PHP_FILE . '/' . (defined('P_MODULE_NAME') ? P_MODULE_NAME : MODULE_NAME));
     //当前操作地址
     define('__ACTION__', __URL__ . C('PATH_DEPR') . ACTION_NAME);
     C('TMPL_FILE_NAME', TEMPLATE_PATH . '/' . MODULE_NAME . '/' . ACTION_NAME . C('TEMPLATE_SUFFIX'));
     define('__CURRENT__', APP_URL . '/' . $tmplDir . MODULE_NAME);
     //thinksns修改:	由WEB_URL.'/'.APP_NAME 换成 APP_URL
     //项目模板目录
     define('APP_TMPL_URL', $appRoot . $tmplDir);
     //项目模板目录绝对路径
     define('APP_PUBLIC_PATH', APP_PATH . DIRECTORY_SEPARATOR . $tmplDir . 'Public');
     //网站公共文件地址
     define('WEB_PUBLIC_URL', WEB_URL . '/Public');
     //项目公共文件目录
     define('APP_PUBLIC_URL', APP_TMPL_URL . 'Public');
     return;
 }
Ejemplo n.º 12
0
 /**
 +----------------------------------------------------------
 * 模板检查,如果不存在使用默认
 +----------------------------------------------------------
 * @access private 
 +----------------------------------------------------------
 * @return void
 +----------------------------------------------------------
 * @throws ThinkExecption
 +----------------------------------------------------------
 */
 private function checkTemplate()
 {
     if (isset($_GET[C('VAR_TEMPLATE')])) {
         $templateSet = $_GET[C('VAR_TEMPLATE')];
         Cookie::set('t', $templateSet);
     } else {
         if (Cookie::is_set('t')) {
             $templateSet = Cookie::get('t');
         } else {
             $templateSet = C('DEFAULT_TEMPLATE');
             Cookie::set('t', $templateSet);
         }
     }
     if (!is_dir(TMPL_PATH . $templateSet)) {
         //模版不存在的话,使用默认模版
         $templateSet = C('DEFAULT_TEMPLATE');
     }
     //模版名称
     define('TEMPLATE_NAME', $templateSet);
     // 当前模版路径
     define('TEMPLATE_PATH', TMPL_PATH . TEMPLATE_NAME);
     //当前网站地址
     define('__ROOT__', WEB_URL);
     //当前项目地址
     define('__APP__', PHP_FILE);
     $module = defined('P_MODULE_NAME') ? P_MODULE_NAME : MODULE_NAME;
     $action = defined('P_ACTION_NAME') ? P_ACTION_NAME : ACTION_NAME;
     //模块地址
     define('__URL__', PHP_FILE . '/' . $module);
     //当前操作地址
     define('__ACTION__', PHP_FILE . '/' . $module . '/' . $action);
     //当前页面地址
     define('__SELF__', $_SERVER['PHP_SELF']);
     // 默认加载的模板文件名
     if (defined('C_MODULE_NAME')) {
         C('TMPL_FILE_NAME', TEMPLATE_PATH . '/' . str_replace(':', '/', C_MODULE_NAME) . '/' . ACTION_NAME . C('TEMPLATE_SUFFIX'));
         define('__CURRENT__', WEB_URL . '/' . APP_NAME . '/' . TMPL_DIR . '/' . TEMPLATE_NAME . '/' . str_replace(':', '/', C_MODULE_NAME));
     } else {
         C('TMPL_FILE_NAME', TEMPLATE_PATH . '/' . MODULE_NAME . '/' . ACTION_NAME . C('TEMPLATE_SUFFIX'));
         define('__CURRENT__', WEB_URL . '/' . APP_NAME . '/' . TMPL_DIR . '/' . TEMPLATE_NAME . '/' . MODULE_NAME);
     }
     //网站公共文件地址
     define('WEB_PUBLIC_URL', WEB_URL . '/Public');
     //项目公共文件地址
     define('APP_PUBLIC_URL', WEB_URL . '/' . APP_NAME . '/' . TMPL_DIR . '/' . TEMPLATE_NAME . '/Public');
     return;
 }
 static function get($name, $encode = false)
 {
     $value = Cookie::is_set($name) ? $_COOKIE[C('COOKIE_PREFIX') . $name] : null;
     $value = $encode ? unserialize(base64_decode($value)) : $value;
     return $value;
 }