www.gusucode.com > HadSky PHP轻论坛系统源码 v2.4.2源码程序 > ytqlt_v2.4.2.0701/puyuetian/plug/1.php
<?php if (!defined('puyuetian')) exit('Not Found puyuetian!Please contact QQ632827168'); /* * 全部变量的定义 */ define('ZONE_TIMELINENUM', 20); $_G['TEMPLATE']['HEADER'] = 'header'; $_G['TEMPLATE']['BODY'] = 'body'; $_G['TEMPLATE']['HDRIVE'] = 'hdrive'; $_G['TEMPLATE']['SCRIPT'] = 'script'; $_G['TEMPLATE']['FOOTER'] = 'footer'; /* * session验证码安全机制,每个验证码存储变量先赋值随机数 */ $__rnd = rand(0, 9999); if (!$_SESSION['VERIFYCODE']) $_SESSION['VERIFYCODE'] = $__rnd; if (!$_SESSION['VERIFYCODE_UPLOADFILE']) $_SESSION['VERIFYCODE_UPLOADFILE'] = $__rnd; if (!$_SESSION['VERIFYCODE_POST']) $_SESSION['VERIFYCODE_POST'] = $__rnd; if (!$_SESSION['VERIFYCODE_SENDMESSAGE']) $_SESSION['VERIFYCODE_SENDMESSAGE'] = $__rnd; unset($__rnd); /* * 用户登录检测,若登录用户信息保存在$_G['USER']数组内 * $_G['USER']['ID']为$LoginUserId的简写 * $_G['USER']为$LoginUserArray的简写 */ //获取session用户id,若不存在设为2,系统游客用户 $_G['USER']['ID'] = Cnum($_SESSION['LoginUserId'], 2); //读取此用户信息存在$_G['USER']数组中 $LUA = $_G['TABLE']['USER'] -> getData($_G['USER']['ID']); if (!$LUA) { $_SESSION['LoginUserId'] = ''; $_G['USER']['ID'] = 2; $LUA = $_G['TABLE']['USER'] -> getData($_G['USER']['ID']); } //将$_G['USER']数据存入全局$_G中 foreach ($LUA as $key => $value) { $_G['USER'][strtoupper($key)] = $value; $_G['USER']['NICKNAME'] = htmlspecialchars($_G['USER']['NICKNAME']); } unset($LUA, $key, $value); //用户&游客class样式 $_G['TEMP']['USERHIDECLASS'] = $_G['TEMP']['GUESTHIDECLASS'] = ''; if ($_G['USER']['ID'] == 2) { $_G['TEMP']['GUESTHIDECLASS'] = 'am-hide'; } else { $_G['TEMP']['USERHIDECLASS'] = 'am-hide'; if ($_G['USER']['ID'] == 1) { //创始人可以用html代码 } elseif (chkUserQx($RUA['quanxian'], 'admin')) { //管理员可以用bbcode $_G['USER']['SIGN'] = BBcode($_G['USER']['SIGN']); } else { //普通用户仅能使用指定标签 $_G['USER']['SIGN'] = BBcode($_G['USER']['SIGN'], '<b><i><u><strong><font><img>'); } if (chkUserQx($_G['USER']['QUANXIAN'], 'nosign')) { $RUA['sign'] = '您的签名可能涉及违法内容,已被管理员禁止'; } if (!trim($_G['USER']['SIGN'])) { $_G['USER']['SIGN'] = '您暂未设置签名'; } } //用户消息获取 $NEWMESSAGENUM = $_G['TABLE']['USER_MESSAGE'] -> getId(array("uid", "islook"), array($_G['USER']['ID'], 0)); $USERCOUNT = $_G['TABLE']['USER'] -> getCount(); $READCOUNT = $_G['TABLE']['READ'] -> getCount(); $REPLYCOUNT = $_G['TABLE']['REPLY'] -> getCount(); $RRCOUNT = $READCOUNT + $REPLYCOUNT; $bbsreferer = urlencode("index.php?{$QUERY_STRING}"); $ClientInfos = getClientInfos(); //签到内容 $sign_date = date('m月d日', time()); $sign_dated = Cnum($_G['USER']['QIANDAOTIME']); if ($sign_dated) { if ($_G['DATETIME']['DATE'] == date('Y-m-d', $sign_dated)) { $QIANDAOED = 'TRUE'; } else { $QIANDAOED = 'FALSE'; } } //用户权限排序显示 $_G['USER']['QUANXIAN'] = explode(',', $_G['USER']['QUANXIAN']); if (is_array($_G['USER']['QUANXIAN'])) { sort($_G['USER']['QUANXIAN']); $__quanxian2 = $_G['USER']['QUANXIAN']; $_G['USER']['QUANXIAN'] = ''; foreach ($__quanxian2 as $value) { $_G['USER']['QUANXIAN'] .= ',' . $value; } $_G['USER']['QUANXIAN'] = substr($_G['USER']['QUANXIAN'], 1); } unset($__quanxian2); //GET POST数据获取 $jifen = Cnum($_GET['jifen'], 0); $tiandou = Cnum($_GET['tiandou'], 0); $type = Cstr(strtolower($_GET['type']), '', true, 1, 255); $id = Cnum($_GET['id'], 0); if ($id < 1) $id = 0; $uid = Cnum($_GET['uid'], 0); if ($uid < 1) $uid = 0; $page = Cnum($_GET['page'], 1); if ($page < 1) $page = 1; $rnd = Cnum($_GET['rnd'], 0); $sortid = Cnum($_GET['sortid'], 0); $verifycode = Cnum($_POST['verifycode'], ''); $viewport = Cstr($_GET['viewport'], false, true, 1, 125); $referer = urlencode($_GET['referer']); if ($viewport) { setcookie('viewport', $viewport); } $DOMAINS = explode('.', $_G['SYSTEM']['DOMAIN']); if ($viewport == 'phone' || $_COOKIE['viewport'] == 'phone' || ($DOMAINS[0] == 'm' && $viewport != 'pc')) { $_G['SET']['TEMPLATENAME'] = $_G['SET']['PHONETEMPLATENAME']; //$_G['SET']['REWRITEURL'] = ''; } $_G['HTMLCODE']['OUTPUT'] = ''; $_G['VERIFYCODE_TEMPLATE']['STATUS'] = 0; //验证码模板加载状态,0为未加载 if ($_G['SET']['OPENVERIFYCODE'] && !chkUserQx($_G['USER']['QUANXIAN'], 'noverifycode')) { //验证码模板加载 $_G['VERIFYCODE_TEMPLATE']['STATUS'] = 1; $_G['VERIFYCODE_TEMPLATE']['LOGIN'] .= template('verifycode_login', true); $_G['VERIFYCODE_TEMPLATE']['REG'] .= template('verifycode_reg', true); $_G['VERIFYCODE_TEMPLATE']['SENDMESSAGE'] .= template('verifycode_sendmessage', true); $_G['VERIFYCODE_TEMPLATE']['POST'] .= template('verifycode_post', true); } /* * 访问统计插件 */ $TONGJIURL = "http://tongji.hadsky.com/tongji.php?domain={$_G['SYSTEM']['DOMAIN']}&serverip={$_G['SYSTEM']['SERVERIP']}&clientip={$_G['SYSTEM']['CLIENTIP']}&softname=ytqlt&allurl=" . urlencode($_G['SYSTEM']['LOCATION']) . "&checkcode={$CHECKCODE}&rnd={$RND}"; /** * js变量生成 */ $_G['JAVASCRIPT']['USER'] = "var \$USER = Array();"; $_G['JAVASCRIPT']['GET'] = "var \$GET = Array();"; $_G['JAVASCRIPT']['SET'] = "var \$SET = Array();"; //系统设置 foreach ($_G['USER'] as $__key => $__value) {//用户信息 $__pc = ",ID,NICKNAME,JIFEN,TIANDOU,QIANDAODAYS,USERNAME,"; //不允许输出的用户信息 $__value = str_replace('"', '\"', $__value); $__value = str_replace("\n", '', $__value); $__value = str_replace("\r", '', $__value); $__value = str_replace("\r\n", '', $__value); if (strpos($__pc, ",{$__key},") !== FALSE) { $_G['JAVASCRIPT']['USER'] .= "\$USER['{$__key}'] = \"" . htmlspecialchars($__value, ENT_QUOTES) . "\";"; } } foreach ($_GET as $__key => $__value) {//get数据 $__value = str_replace('"', '\"', $__value); $__value = str_replace("\n", '', $__value); $__value = str_replace("\r", '', $__value); $__value = str_replace("\r\n", '', $__value); $_G['JAVASCRIPT']['GET'] .= '$GET[' . strtoupper($__key) . '] = "' . htmlspecialchars($__value, ENT_QUOTES) . '";'; } foreach ($_G['SET'] as $__key => $__value) {//set数据 $__value = str_replace('"', '\"', $__value); $__value = str_replace("\n", '', $__value); $__value = str_replace("\r", '', $__value); $__value = str_replace("\r\n", '', $__value); $__bl = ",QIANDAOJIFEN,QIANDAOTIANDOU,"; //允许输出的SET设置 if (strpos($__bl, ",{$__key},") !== FALSE) { $_G['JAVASCRIPT']['SET'] .= "\$SET['{$__key}'] = \"" . htmlspecialchars($__value, ENT_QUOTES) . "\";"; } } $_G['JAVASCRIPT']['ALL'] = "{$_G['JAVASCRIPT']['USER']}{$_G['JAVASCRIPT']['GET']}{$_G['JAVASCRIPT']['SET']}"; unset($__key, $__value, $__pc, $__bl); /* * 用户自定义函数 */ //检测用户是否具有某种权限 function chkUserQx($qxs, $qx) { $qxs = explode(',', $qxs); foreach ($qxs as $value) { if ($qx == $value) return true; } return false; } function ifvisitor($do = 'read') { global $_G, $bbsreferer; if ($_G['USER']['ID'] == 2 && !chkUserQx($_G['USER']['QUANXIAN'], $do)) { header("Location:index.php?c=login&referer={$bbsreferer}"); exit(); } } function NewMessage($uid, $content, $fid = 1, $safetype = 0) { global $_G; $array['uid'] = Cnum($uid); $array['fid'] = Cnum($fid); if ($safetype == 0) { $array['content'] = htmlspecialchars(BBcode($content, '')); } elseif ($safetype == 1) { $array['content'] = BBcode($content); } else { $array['content'] = $content; } $array['addtime'] = time(); $array['islook'] = 0; $_G['TABLE']['USER_MESSAGE'] -> newData($array); } function getZoneTimeline($uid) { global $_G; $__oldid = $_G['TABLE']['READ'] -> getOldId("where `uid`={$uid}"); $__newid = $_G['TABLE']['READ'] -> getNewId("where `uid`={$uid}"); if ($__oldid && $__newid) { $__newtime = $_G['TABLE']['READ'] -> getData($__newid); $__oldtime = $_G['TABLE']['READ'] -> getData($__oldid); $__newtime = date('Ym', $__newtime['posttime']); $__oldtime = date('Ym', $__oldtime['posttime']); for ($__i = 0; ($__oldtime < $__newtime) && $__i < ZONE_TIMELINENUM; $__i++) { $ZONE_TIMELINE .= " <a class='blog-timeline-a' href='" . ReWriteURL('zone', "uid={$uid}&timeline={$__newtime}&page=1") . "'> " . substr($__newtime, 0, 4) . '年' . substr($__newtime, strlen($__newtime) - 2) . "月 </a> "; if (substr($__newtime, strlen($__newtime) - 2) == '01') { //若当前为1月,上一月则为上一年12月 $__newtime = intval((substr($__newtime, 0, 4) - 1) . '12'); } else { $__newtime--; } } } return $ZONE_TIMELINE; } function UserDataChange($array, $uid = 0, $way = '+') { global $_G; if (!$uid) { $uid = $_G['USER']['ID']; } if ($uid == 2) { return FALSE; } if ($way) { $olddata = $_G['TABLE']['USER'] -> getData($uid); if ($olddata) { foreach ($array as $key => $value) { if ($way == '+') { $array[$key] = $olddata[$key] + $value; } elseif ($way == '-') { $array[$key] = $olddata[$key] - $value; } } } } $array['id'] = $uid; $_G['TABLE']['USER'] -> NewData($array); } //版块遍历函数,调用前需定义childs=-1; function foundchildforum($pid) { global $_G, $postnewreadforumlist, $childs; $data = $_G['TABLE']['READSORT'] -> getDatas(0, 0, "where `pid`={$pid} order by `rank`"); if ($data) { $childs++; foreach ($data as $array) { $fgf = $sqx = $disabled = ''; for ($i = 0; $i < $childs; $i++) { $fgf .= '--'; } if ($_G['USER']['READLEVEL'] < $array['postlevel']) { $sqx = " 需阅读权限达到:{$array['postlevel']}"; $disabled = " disabled"; } $postnewreadforumlist .= "<option value='{$array['id']}'{$disabled}>{$fgf}{$array['title']}{$sqx}</option>"; foundchildforum($array['id']); if ($pid == 0) { $childs = 0; } } } } //插件前台加载函数 function LoadHadSkyPlugHOOKHTML($html) { global $_G; //读取插件数据 if ($_G['PLUG']['DATA'][$_G['SYSTEM']['CLOADPLUGNAME']]) { $__temp = $_G['PLUG']['DATA'][$_G['SYSTEM']['CLOADPLUGNAME']]['P']; if ($__temp) { $__temp = explode(',', $__temp); foreach ($__temp as $__value) { $__show = explode(':', $__value); if (count($__show) == 2) { $_G['HOOK'][strtoupper($__show[0])][strtoupper($__show[1])] .= $html; } } } } }