% /* History: 10/2 dvk - Changed size limit for password from 5 to 4 8/13/03 dvk - Changed from .shtml to .jsp */ %> <%@ page import="java.io.*" %> <%@ page import="java.sql.*" %> <%@ page import="java.util.*" %> <%@ page import="java.text.*" %> <%@ page import="javax.servlet.*" %> <%@ page import="javax.servlet.http.*" %> <%@ page import="javax.mail.*" %> <%@ page import="javax.mail.internet.*" %> <%@ page import="mySqlPool.*" %> <%! mySqlPool poolConn = mySqlPool.getInstance(); // All db connections from common pool dvk _dvk = new dvk(); // uses: vbLog() for logging errors %> <% String referrer = (String)session.getAttribute("ref"); String pwLookup = null; if (referrer == null) { referrer = request.getHeader("Referer"); if (referrer != null && referrer.indexOf("login") == -1) session.setAttribute("ref", referrer); else referrer = "download.jsp"; // *************** Should be login.jsp *********** } String email = request.getParameter("email"); if (email == null) email = ""; String pw = request.getParameter("pw"); String email2 = request.getParameter("email2"); String errFlag = null; PreparedStatement ps = null; Connection conn = null; if (email != null && email.length() >4 && pw != null) { // attempt login -- lookup user if (email.length() < 5 || email.indexOf("@") == -1 || email.indexOf(".") == -1) { errFlag = email + " is an nvalid email address."; email = ""; } else if (pw.length() < 4) { errFlag = "Invalid password."; } else { try { StringBuffer sb = new StringBuffer("SELECT MemberID from MemberProfile WHERE EmailAddress = ? AND Password = ?"); conn = poolConn.openConnection(); ps = conn.prepareStatement(sb.toString()); ps.clearParameters(); ps.setString(1, email); ps.setString(2, pw); ResultSet rs = ps.executeQuery(); conn = poolConn.close(conn); if (rs.next()) { session.setAttribute("email", email); // Now see what this user has purchased sb.setLength(0); sb.append("SELECT itemID from Purchase WHERE Downloaded < 4 AND EmailAddress = ?"); conn = poolConn.openConnection(); ps = conn.prepareStatement(sb.toString()); ps.clearParameters(); ps.setString(1, email); rs = ps.executeQuery(); conn = poolConn.close(conn); sb.setLength(0); int n = 0; while (rs.next()) { n++; sb.append(rs.getString(1) + "~"); } if (n>0) { String dwnldList = sb.toString(); session.setAttribute("dwnldList", dwnldList); } response.sendRedirect(referrer); } else { // not found -- see if email address is ok sb.setLength(0); sb.append("SELECT MemberID from MemberProfile WHERE EmailAddress = ?"); conn = poolConn.openConnection(); ps = conn.prepareStatement(sb.toString()); ps.clearParameters(); ps.setString(1, email); rs = ps.executeQuery(); conn = poolConn.close(conn); if (rs.next()) errFlag = "Invalid password. Please try again."; else errFlag = email + " was not found in our database. Please try again."; } } catch(SQLException sqle) { _dvk.vbLog("SQL error: " + sqle.getMessage(), "components:login.jsp"); } finally { if (conn != null) conn = poolConn.close(conn); } } } else { String action = request.getParameter("a"); if (action != null && action.equals("send")) { // User needs password if (email2 != null && email2.length() > 4 && email2.indexOf("@") > -1 && email2.indexOf(".") > -1) { // Send email try { StringBuffer sb = new StringBuffer("SELECT Password from MemberProfile WHERE EmailAddress = ?"); conn = poolConn.openConnection(); ps = conn.prepareStatement(sb.toString()); ps.clearParameters(); ps.setString(1, email2); ResultSet rs = ps.executeQuery(); conn = poolConn.close(conn); if (rs.next()) { pwLookup = rs.getString(1); errFlag = "Password sent"; } else { // not found errFlag = "Email address not found. Please try again."; } } catch(SQLException sqle) { _dvk.vbLog("SQL error: " + sqle.getMessage(), "components:login.jsp"); } finally { if (conn != null) conn = poolConn.close(conn); } if (pwLookup != null) { mailPwCS (pwLookup, email2); } } else { errFlag = "Invalid email address."; } } } %>
|