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_')); } } } }
/** +---------------------------------------------------------- * 检测浏览器语言 +---------------------------------------------------------- * @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_')); } } } }
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'])); } }
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; } } } } }
/** +---------------------------------------------------------- * 模板检查,如果不存在使用默认 +---------------------------------------------------------- * @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; }
/** +---------------------------------------------------------- * 设置活动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); } } } }
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; }
/** +---------------------------------------------------------- * 模板检查,如果不存在使用默认 +---------------------------------------------------------- * @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; }
/** +---------------------------------------------------------- * 模板检查,如果不存在使用默认 +---------------------------------------------------------- * @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; }