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

📄 membermanageaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				int timestamp = (Integer)(request.getAttribute("timestamp"));
				dataBaseService.runQuery("UPDATE jrun_memberfields SET authstr='"+timestamp+"\t1\t"+idstring+"' WHERE uid='"+member.get("uid")+"'", false);
				request.setAttribute("resultInfo","取回密码的方法已经通过 Email 发送到您的信箱中,<br />请在 3 天之内到论坛修改您的密码。");
				Map<String,String> settings=ForumInit.settings;
				Map<String,String> mails=dataParse.characterParse(settings.get("mail"), false);
				mails.put("jsprun_root",servlet.getServletContext().getRealPath("/"));
				HttpSession session=request.getSession();
				String boardurl=(String)session.getAttribute("boardurl");
				String get_passwd_message="\n"+member.get("username")+",\n这封信是由 "+settings.get("bbname")+" 发送的。\n\n您收到这封邮件,是因为在我们的论坛上这个邮箱地址被登记为用户邮箱,\n且该用户请求使用 Email 密码重置功能所致。\n\n----------------------------------------------------------------------\n重要!\n----------------------------------------------------------------------\n\n如果您没有提交密码重置的请求或不是我们论坛的注册用户,请立即忽略\n并删除这封邮件。只在您确认需要重置密码的情况下,才继续阅读下面的\n内容。\n\n----------------------------------------------------------------------\n密码重置说明\n----------------------------------------------------------------------\n\n您只需在提交请求后的三天之内,通过点击下面的链接重置您的密码:\n\n"+boardurl+"member.jsp?action=getpasswd&uid="+member.get("uid")+"&id="+idstring+"\n\n(如果上面不是链接形式,请将地址手工粘贴到浏览器地址栏再访问)\n\n上面的页面打开后,输入新的密码后提交,之后您即可使用新的密码登录\n论坛了。您可以在用户控制面板中随时修改您的密码。\n\n本请求提交者的 IP 为 "+request.getRemoteAddr()+"\n\n\n\n此致\n\n"+settings.get("bbname")+" 管理团队.\n"+boardurl;
				Mail mail=new Mail(mails);
				mail.sendMessage(mails.get("from"),member.get("username")+" <"+member.get("email")+">", "取回密码说明", get_passwd_message, null);
				return mapping.findForward("showMessage");
			}
		} else {
			request.setAttribute("errorInfo", "用户名,Email 地址或安全提问不匹配,请返回修改。");
			return mapping.findForward("showMessage");
		}
	}

	public ActionForward toGetpasswd(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String uid=request.getParameter("uid");
		List<Map<String,String>> members=dataBaseService.executeQuery("SELECT m.username, mf.authstr FROM jrun_members m,jrun_memberfields mf WHERE m.uid='"+uid+"' AND mf.uid=m.uid");
		if (members == null||members.size()==0||members.get(0).get("authstr").equals("")) {
			request.setAttribute("resultInfo", "您所用的 ID 不存在或已经过期,无法取回密码。");
			return mapping.findForward("showMessage");
		}
		Map<String,String> member=members.get(0);
		String id = request.getParameter("id");
		int timestamp = (Integer)(request.getAttribute("timestamp"));
		String[] authstr = member.get("authstr").split("\t");
		int dataline = Common.toDigit(authstr[0], 2147483647L, 0L).intValue();
		int operation = Common.toDigit(authstr[1], 2147483647L, 0L).intValue();
		String idString = authstr[2];
		if (dataline < timestamp - 86400 * 3 || operation != 1|| !idString.equals(id)) {
			request.setAttribute("resultInfo", "您所用的 ID 不存在或已经过期,无法取回密码。");
			return mapping.findForward("showMessage");
		}
		String getpwsubmit = request.getParameter("getpwsubmit");
		String newpasswd1 = request.getParameter("newpasswd1");
		String newpasswd2 = request.getParameter("newpasswd2");
		if (getpwsubmit == null || newpasswd1 != null&& !newpasswd1.equals(newpasswd2)) {
			request.setAttribute("username",member.get("username"));
			request.setAttribute("uid",uid);
			request.setAttribute("id", idString);
			return mapping.findForward("toGetpasswd");
		}
		if (newpasswd1.equals("")) {
			request.setAttribute("errorInfo", "密码空或包含非法字符,请重新填写。");
			return mapping.findForward("showMessage");
		} else {
			newpasswd1 = Md5Token.getInstance().getLongToken(newpasswd1);
			dataBaseService.runQuery("UPDATE jrun_members SET password='"+newpasswd1+"' WHERE uid='"+uid+"'", false);
			dataBaseService.runQuery("UPDATE jrun_memberfields SET authstr='' WHERE uid='"+uid+"'", false);
			request.setAttribute("resultInfo", "您的密码已重新设置,请使用新密码登录。");
			return mapping.findForward("showMessage");
		}
	}
	@SuppressWarnings("unchecked")
	public ActionForward switchstatus(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		Map<String,String> usergroups=(Map<String,String>)request.getAttribute("usergroups");
		String allowinvisible = usergroups != null&&usergroups.size()>0 ? usergroups.get("allowinvisible") : "0";
		if ("0".equals(allowinvisible)) {
			request.setAttribute("show_message", "您所在的用户组("+ usergroups.get("grouptitle") + ")无法进行此操作。");
			return mapping.findForward("nopermission");
		}
		Members member = (Members) session.getAttribute("user");
		member.setInvisible((byte)(member.getInvisible() == 1 ?0 : 1));
		memberService.modifyMember(member);

		session.setAttribute("user", member);
		response.setContentType("text/html");
		response.setHeader("Cache-Control", "no-store");  
		response.setHeader("Program", "no-cache");  
		response.setDateHeader("Expirse", 0);
		try {
			Writer writer = response.getWriter();
			if (member.getInvisible() == 1) {
				writer.write("<a href='member.jsp?action=switchstatus' title='切换到正常模式' ajaxtarget='loginstatus'>隐身模式</a>");
			} else {
				writer.write("<a href='member.jsp?action=switchstatus' title='切换到隐身模式' ajaxtarget='loginstatus'>正常模式</a>");
			}
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

	public ActionForward markread(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		HttpSession session = request.getSession();
		int jsprun_uid = (Integer) session.getAttribute("jsprun_uid");
		if (jsprun_uid>0) {
			int timestamp = (Integer)(request.getAttribute("timestamp"));
			dataBaseService.runQuery("UPDATE jrun_members SET lastvisit='"+timestamp+"' WHERE uid='"+jsprun_uid+"'");
			session.setAttribute("user", memberService.findMemberById(jsprun_uid));
		}
		response.setContentType("text/html");
		response.setHeader("Cache-Control", "no-store");  
		response.setHeader("Program", "no-cache");  
		response.setDateHeader("Expirse", 0);
		try {
			Writer writer = response.getWriter();
			writer.write("所有版块已被标记已读。");
			writer.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

	@SuppressWarnings("unchecked")
	public ActionForward credits(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		String fid = request.getParameter("fid");
		Map<String, String> settings = (Map<String, String>) request .getAttribute("settings");
		String extcredits = settings.get("extcredits");
		if (extcredits.equals("")) {
			request.setAttribute("errorInfo", "对不起,管理员没有启用论坛积分。");
			return mapping.findForward("showMessage");
		}
		String creditspolicy = settings.get("creditspolicy");
		Map creditspolicymap = dataParse.characterParse(creditspolicy,false);
		Map extcreditsmap = dataParse.characterParse(extcredits,true);
		String sql = "select * from jrun_forumfields as f where f.fid=" + fid;
		List<Map<String, String>> forumsfileds = dataBaseService.executeQuery(sql);
		String[] operation = new String[] { "post", "reply", "digest",	"postattach", "getattach" };
		String[] operationname = new String[] { "发新主题", "发表回复", "加入精华", "发表附件","下载附件" };
		int size = extcreditsmap.keySet().size() + 1;
		List resutl = new ArrayList();
		for (int i = 0; i < operation.length; i++) {
			if (creditspolicymap != null) {
				Iterator extit = extcreditsmap.keySet().iterator();
				Map creditpoli = (Map) creditspolicymap.get(operation[i]);
				if (creditpoli != null) {
					String[] creditresult = new String[size];
					creditresult[0] = operationname[i];
					while (extit.hasNext()) {
						String unit = "";
						Object key = extit.next();
						Map extmap = (Map) extcreditsmap.get(key);
							if (extmap.get("unit") != null) {
								unit = extmap.get("unit").toString();
							}
							if (creditpoli.get(key) != null) {
								if (creditpoli.get(key).toString().equals("0")) {
									creditresult[convertInt(key.toString())] = creditpoli.get(key).toString();
								} else {
									if (i == 4) {
										creditresult[convertInt(key.toString())] = "-" 	+ creditpoli.get(key) .toString() + unit;
									} else {
										creditresult[convertInt(key.toString())] = "+" + creditpoli.get(key) .toString() + unit;
									}
								}
							} else {
								creditresult[convertInt(key.toString())] = "N/A";
							}
					}
					resutl.add(creditresult);
				} else {
					String[] creditresult = new String[size];
					creditresult[0] = operationname[i];
					while (extit.hasNext()) {
						Object key = extit.next();
						creditresult[convertInt(key.toString())] = "N/A";
					}
					resutl.add(creditresult);
				}
			}
			String operationcredits = "";
			if (forumsfileds!=null&&forumsfileds.size() > 0) {
				Map<String, String> forumsfildmap = forumsfileds.get(0);
				operationcredits = forumsfildmap.get(operation[i] + "credits");
			}
			if (!operationcredits.equals("")) {
				Iterator extit = extcreditsmap.keySet().iterator();
				Map creditforum = dataParse.characterParse(operationcredits,false);
				String[] creditresult = new String[size];
				creditresult[0] = "本版" + operationname[i];
				while (extit.hasNext()) {
					String unit = "";
					Object key = extit.next();
					Map extmap = (Map) extcreditsmap.get(key);
					if (extmap.get("unit") != null) {
						unit = extmap.get("unit").toString();
					}
					if (creditforum.get(key) != null) {
						if (creditforum.get(key).toString().equals("0")) {
							creditresult[convertInt(key.toString())] = creditforum .get(key).toString();
						} else {
							if (i == 4) {
								creditresult[convertInt(key.toString())] = "-" + creditforum.get(key).toString() + unit;
							} else {
								creditresult[convertInt(key.toString())] = "+" + creditforum.get(key).toString() + unit;
							}
						}
					} else {
						creditresult[convertInt(key.toString())] = "N/A";
					}
				}
				resutl.add(creditresult);
			} else {
				Iterator extit = extcreditsmap.keySet().iterator();
				String[] creditresult = new String[size];
				creditresult[0] = "本版" + operationname[i];
				while (extit.hasNext()) {
					Object key = extit.next();
					creditresult[convertInt(key.toString())] = "N/A";
				}
				resutl.add(creditresult);
			}
		}
		String[] operationother = new String[] { "pm", "search", "promotion_visit", "promotion_register", "tradefinished", "votepoll", "lowerlimit" };
		String[] operationnameother = new String[] { "发短消息", "搜索", "访问推广", "注册推广", "成功交易", "参与投票", "积分下限" };
		for (int i = 0; i < operationother.length; i++) {
			Iterator extit = extcreditsmap.keySet().iterator();
			if (creditspolicymap != null) {
				Map creditpoli = (Map) creditspolicymap.get(operationother[i]);
				if (creditpoli != null) {
					String[] creditresult = new String[size];
					creditresult[0] = operationnameother[i];
					while (extit.hasNext()) {
						String unit = "";
						Object key = extit.next();
						Map extmap = (Map) extcreditsmap.get(key);
							if (extmap.get("unit") != null) {
								unit = extmap.get("unit").toString();
							}
							if (creditpoli.get(key) != null) {
								if (creditpoli.get(key).toString().equals("0")) {
									creditresult[convertInt(key.toString())] = creditpoli.get(key).toString();
								} else {
									if (i == 0 || i == 1) {
										creditresult[convertInt(key.toString())] = "-" + creditpoli.get(key).toString() + unit;
									} else {
										creditresult[convertInt(key.toString())] = "+" + creditpoli.get(key).toString() + unit;
									}
								}
							} else {
								creditresult[convertInt(key.toString())] = "N/A";
							}
					}
					resutl.add(creditresult);
				}
			}
		}
		request.setAttribute("result", resutl);
		request.setAttribute("extmap", extcreditsmap);
		return mapping.findForward("credits");
	}
	@SuppressWarnings("unchecked")
	public ActionForward clearcookies(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
		Map<String,String> settings=(Map<String,String>)request.getAttribute("settings");
		CookieUtil.clearCookies(request, response,settings);
		return mapping.findForward("toIndex");
	}

	private int convertInt(String s) {
		int count = 0;
		try {
			count = Integer.valueOf(s);
		} catch (Exception e) {
		}
		return count;
	}
	public ActionForward regverify(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		int timestamp = (Integer)(request.getAttribute("timestamp"));
		int validateid = Common.toDigit(request.getParameter("validateid"));
		Validating validate = memberService.findValidatingById(validateid);
		String message = request.getParameter("regmessage");
		validate.setMessage(message ==null?"":message);
		validate.setStatus((byte)0);
		validate.setSubmitdate(timestamp);
		validate.setSubmittimes((short)(validate.getSubmittimes()+1));
		memberService.modifyValidating(validate);
		request.setAttribute("successInfo", "审核请求提交成功,现在将返回控制面板首页。");
		request.setAttribute("requestPath", "memcp.jsp");
		return mapping.findForward("showMessage");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -