📄 common.java
字号:
return thread;
}
@SuppressWarnings("unchecked")
public static boolean isshowsuccess(HttpSession session,String keyword){
Map successmessages = (Map)session.getAttribute("successmessages");
byte quick = (Byte)session.getAttribute("quick");
if(quick==1){
Iterator it = successmessages.keySet().iterator();
while(it.hasNext()){
Object key = it.next();
String value = (String)successmessages.get(key);
if(keyword.equals(value)){
return true;
}
}
}
return false;
}
public static void requestforward(HttpServletResponse response,String referer){
try {
response.sendRedirect(referer);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String strip_tags(String content)
{
return content==null?"":content.replaceAll("<[\\s\\S]*?>", "");
}
public static String dhtmlspecialchars(String value){
if(matches(value, "(&|\"|<|>)")){
value=value.replaceAll("&", "&");
value=value.replaceAll("\"", """);
value=value.replaceAll("<", "<");
value=value.replaceAll(">", ">");
}
return value;
}
public static String htmlspecialchars(String value){
if(matches(value, "(&|"|<|>)")){
value=value.replaceAll("&", "&");
value=value.replaceAll(""", "\"");
value=value.replaceAll("<", "<");
value=value.replaceAll(">", ">");
}
return value;
}
@SuppressWarnings("unchecked")
public static void setExtcredits(HttpServletRequest request) {
request.setAttribute("extcredits", dataParse.characterParse(((Map<String, String>) request.getAttribute("settings")).get("extcredits"),true));
}
public static void sessionExists(HttpServletRequest request,HttpServletResponse response,String sid,int uid,Map<String,String> settings)
{
boolean sessionexists = false;
int seccode = 0;
int lastolupdate = 0;
List<Map<String,String>> sessionlist = dataBaseService.executeQuery("select uid,seccode,lastolupdate from jrun_sessions where sid='"+sid+"'");
if (sessionlist == null || sessionlist.size()<=0) {
seccode = Integer.valueOf(Common.getRandStr(6, true));
} else {
Map<String,String> session = sessionlist.get(0);sessionlist=null;
if(toDigit(session.get("uid")) > 0){
if(!session.get("uid").equals(uid+"")){
int jsprun_uid=toDigit(CookieUtil.getCookie(request, "uid", true,settings));
HttpSession httpSession=request.getSession();
String jsprun_userss = null;
short groupid = 7;
byte adminid = 0;
if (jsprun_uid>0) {
Members member = memberService.findMemberById(jsprun_uid);
if (member != null) {
String validateAuth = Md5Token.getInstance().getLongToken(member.getPassword() + "\t"+ member.getSecques() + "\t"+ member.getUid());
if (validateAuth.equals(CookieUtil.getCookie(request, "auth",true,settings))) {
jsprun_uid = member.getUid();
jsprun_userss = member.getUsername();
groupid = member.getGroupid();
adminid = member.getAdminid();
httpSession.setAttribute("user", member);
httpSession.setAttribute("jsprun_pw", member.getPassword());
}
}
} else {
CookieUtil.setCookie(request, response, "uid", String.valueOf(jsprun_uid), 604800, true,settings);
}
httpSession.setAttribute("jsprun_uid", jsprun_uid);
httpSession.setAttribute("jsprun_userss", jsprun_userss!=null?jsprun_userss:"");
httpSession.setAttribute("jsprun_groupid", groupid);
httpSession.setAttribute("jsprun_adminid", adminid);
httpSession.setAttribute("formhash", Common.getRandStr(8, false));
}
seccode = toDigit(session.get("seccode"));
}else{
if(!session.get("uid").equals(uid+"")){
CookieUtil.clearCookies(request, response,settings);
}
seccode = Integer.valueOf(Common.getRandStr(6, true));
}
sessionexists = true;
lastolupdate = toDigit(session.get("lastolupdate"));
session=null;
}
request.setAttribute("seccode", seccode);
request.setAttribute("sessionexists", sessionexists);
request.setAttribute("lastolupdate", lastolupdate);
}
public static void setDateformat(HttpSession session,Map<String,String> settings)
{
Members member=(Members)session.getAttribute("user");
Float timeoffset=null;
String dateformat = null;
String timeformat = null;
if (member != null) {
if (member.getDateformat() > 0) {
String[] userdateformat = settings.get("userdateformat").split("\r\t");
if(userdateformat.length>member.getDateformat()){
dateformat = userdateformat[member.getDateformat()];
}
}
if (member.getTimeformat() > 0) {
timeformat = String.valueOf(member.getTimeformat());
}
if (!member.getTimeoffset().equals("9999")) {
float offset =Float.valueOf(member.getTimeoffset());
timeoffset = (offset != 9999 ) ? offset: null;
}
}
dateformat = dateformat == null ? settings.get("dateformat"): dateformat;
timeformat = timeformat == null ? settings.get("timeformat"): timeformat;
timeoffset = timeoffset == null ? Float.valueOf(settings.get("timeoffset")): timeoffset;
session.setAttribute("dateformat", dateformat);
session.setAttribute("timeformat",timeformat.equals("1") ? "hh:mm a" : "HH:mm");
session.setAttribute("timeoffset", timeoffset);
member=null;
}
public static boolean censoruser(String content,String censoruser)
{
if(content!=null&&content.length()>0){
String censorexp = censoruser.replaceAll("\\*", ".*");
censorexp = censorexp.replaceAll("(\r\n|\r|\n)", "|");
censorexp = censorexp.replaceAll("\\s", "");
censorexp = "^(" + censorexp + ")";
String guestexp = "\\xA1\\xA1|^Guest|^\\xD3\\xCE\\xBF\\xCD|\\xB9\\x43\\xAB\\xC8";
if (Common.matches(content, "^\\s*$|^c:\\con\\con$|[%,\\'\\*\"\\s\\t\\<\\>\\&]|"+ guestexp)|| (censoruser.length()>0 && Common.matches(content, censorexp))) {
return true;
}
}
return false;
}
public static boolean allowAccessBbs(HttpServletRequest request,HttpServletResponse response,HttpSession session,Map<String,String> settings,String accessPath)
{
Short groupid = (Short) session.getAttribute("jsprun_groupid");
Byte adminid = (Byte) session.getAttribute("jsprun_adminid");
List<Map<String,String>> usergroups = dataBaseService.executeQuery("select allowvisit,disableperiodctrl from jrun_usergroups as u where groupid="+groupid);
if(usergroups!=null&&usergroups.size()>0){
Map<String,String> usermap = usergroups.get(0);
byte allowvisit = Byte.valueOf(usermap.get("allowvisit"));
byte disableperiodctrl = Byte.valueOf(usermap.get("disableperiodctrl"));
usergroups = null;
usermap = null;
String ipaccess=settings.get("ipaccess");
if (!allowAccess(request,ipaccess, allowvisit)) {
session.setAttribute("jsprun_uid", 0);
session.setAttribute("jsprun_userss", "");
session.setAttribute("jsprun_groupid", (short) 7);
session.setAttribute("jsprun_adminid", (byte) 0);
request.setAttribute("resultInfo","对不起,您的 IP 地址不在被允许的范围内,或您的账号被禁用,无法访问本论坛。");
try {
request.getRequestDispatcher("/showmessage.jsp").forward(request,response);
return true;
} catch (Exception e) {
e.printStackTrace();
}
} else if (!(accessPath.equals("logging.jsp")|| accessPath.equals("wap.jsp") || adminid == 1)) {
String message = null;
int bbclosed = Integer.valueOf(settings.get("bbclosed"));
if (bbclosed > 0) {
session.setAttribute("jsprun_uid", 0);
session.setAttribute("jsprun_userss", "");
session.setAttribute("jsprun_pw", "");
session.removeAttribute("user");
session.setAttribute("jsprun_groupid", (short) 7);
session.setAttribute("jsprun_adminid", (byte) 0);
message = settings.get("closedreason");
} else {
message = Common.periodscheck(settings.get("visitbanperiods"), disableperiodctrl, Float.valueOf(settings.get("timeoffset")));
}
if (message != null) {
request.setAttribute("show_message", message);
try {
request.getRequestDispatcher("/showmessage.jsp?action=nopermission").forward(request, response);
return true;
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
return false;
}
public static boolean allowAccess(HttpServletRequest request,String ipaccess, Byte allowVisit) {
String currentPage = (String) request.getAttribute("CURSCRIPT");
String action = request.getParameter("action");
String memberIP = request.getRemoteAddr();
boolean allowAccess = true;
ipaccess = ipaccess == null ? "" : ipaccess.trim();
if (allowVisit != null&& allowVisit == 0&& !(currentPage.equals("member.jsp") && (action != null && (action.equals("groupexpiry") || action.equals("activate"))))) {
allowAccess = false;
}
if (!ipaccess.equals("")) {
String[] ipaccesses = ipaccess.split("(\r|\n)");
boolean sign = false;
for (String ipaccesse:ipaccesses) {
if (memberIP.startsWith(ipaccesse)) {
sign = true;
break;
}
}
allowAccess = sign;
}
return allowAccess;
}
public static void setForums(List<Map<String,String>> forumList)
{
if(forumList!=null)
{
List<Map<String,String>> groups = new ArrayList<Map<String,String>>();
List<Map<String,String>> forums = new ArrayList<Map<String,String>>();
List<Map<String,String>> subs = new ArrayList<Map<String,String>>();
for(Map<String,String> forum:forumList)
{
String type=forum.get("type");
if("group".equals(type)){
groups.add(forum);
}else if("forum".equals(type)){
forums.add(forum);
}else if("sub".equals(type)){
subs.add(forum);
}
}
forumList.clear();
for(Map<String,String> group:groups){
forumList.add(group);
for(Map<String,String> forum:forums){
if(group.get("fid").equals(forum.get("fup"))){
forumList.add(forum);
for(Map<String,String> sub:subs){
if(forum.get("fid").equals(sub.get("fup"))){
forumList.add(sub);
}
}
}
}
}
}
}
public static String forumselect(boolean groupselectable,boolean tableformat,short groupid,String extgroupid,String fid,boolean urlstatic)
{
List<Map<String,String>> forumList=dataBaseService.executeQuery("SELECT f.fid, f.type, f.name, f.fup, ff.viewperm, ff.formulaperm, a.uid FROM jrun_forums f LEFT JOIN jrun_forumfields ff ON ff.fid=f.fid LEFT JOIN jrun_access a ON a.fid=f.fid AND a.allowview='1' WHERE f.status>0 ORDER BY f.type, f.displayorder");
setForums(forumList);
StringBuffer forumlist=new StringBuffer();
if(forumList!=null)
{
Map<String,Boolean> visible=new HashMap<String,Boolean>();
if(tableformat){
forumlist.append("<dl><dd><ul>");
for(Map<String,String> forum:forumList)
{
String type=forum.get("type");
String name=Common.strip_tags(forum.get("name"));
String viewperm=forum.get("viewperm");
if("group".equals(type)){
forumlist.append("</ul></dd></dl><dl><dt><a href='index.jsp?gid="+forum.get("fid")+"'>"+name+"</a></dt><dd><ul>");
visible.put(forum.get("fid"), true);
}else if("forum".equals(type)&&visible.get(forum.get("fup"))!=null && ("".equals(viewperm) || (!"".equals(viewperm) && forumperm(viewperm,groupid,extgroupid)))){
if(urlstatic){
forumlist.append("<li"+(forum.get("fid").equals(fid) ? " class='current'" : "")+"><a href='forum-"+forum.get("fid")+"-1.html'>"+name+"</a></li>");
}else{
forumlist.append("<li"+(forum.get("fid").equals(fid) ? " class='current'" : "")+"><a href='forumdisplay.jsp?fid="+forum.get("fid")+"'>"+name+"</a></li>");
}
visible.put(forum.get("fid"), true);
}else if("sub".equals(type)&&visible.get(forum.get("fup"))!=null && ("".equals(viewperm) || (!"".equals(viewperm) && forumperm(viewperm,groupid,extgroupid)))){
if(urlstatic){
forumlist.append("<li class='sub"+(forum.get("fid").equals(fid) ? " current'" : "'")+"><a href='forum-"+forum.get("fid")+"-1.html'>"+name+"</a></li>");
}else{
forumlist.append("<li class='sub"+(forum.get("fid").equals(fid) ? " current'" : "'")+"><a href='forumdisplay.jsp?fid="+forum.get("fid")+"'>"+name+"</a></li>");
}
}
}
forumlist.append("</ul></dd></dl>");
}
else{
forumlist.append("<optgroup label=' '>");
for(Map<String,String> forum:forumList){
String type=forum.get("type");
String name=Common.strip_tags(forum.get("name"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -