⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		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("&", "&amp;");
			value=value.replaceAll("\"", "&quot;");
			value=value.replaceAll("<", "&lt;");
			value=value.replaceAll(">", "&gt;");
		}
		return value;
	}
	public static String htmlspecialchars(String value){
		if(matches(value, "(&amp;|&quot;|&lt;|&gt;)")){
			value=value.replaceAll("&amp;", "&");
			value=value.replaceAll("&quot;", "\"");
			value=value.replaceAll("&lt;", "<");
			value=value.replaceAll("&gt;", ">");
		}
		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='&nbsp;'>");
				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 + -