日期:2014-05-17  浏览次数:20718 次

新手问个简单的问题,检查用户名,邮箱是否占用.
<%
Statement stmt = conn.createStatement();
String s_username = request.getParameter("username");
String pass1 = request.getParameter("pass1");
String email = request.getParameter("email");


String strSql = "select * from user where username='"+s_username+"' or email='"+email+"'";

ResultSet rs = stmt.executeQuery(strSql);

out.println(rs.next());
if(rs.next()){

%>
<h3 style="text-align:center">您注册的用户名已被占用!</h3>
<p style="text-align:center"><a href="register.jsp">重新注册</a></p>

<%}else{%>
<h3 style="text-align:center">注册成功!</h3>

<%
String strSql1 = "insert into user(username,password,email) values('"+s_username+"','"+pass1+"','"+email+"')";
stmt.executeUpdate(strSql1);
}
%>

怎么判断如果用户注册的用户名占用就提示"用户名占用",,邮箱占用就提示邮箱占用的提示. 
难道要分开写sql语句?
------解决方案--------------------
一般来说是先判断邮箱,如果重复就不判断后面的了,如果不重复再判断用户名
------解决方案--------------------
建议通过ajax去分别判断。
这样一个sql语句,得到的是一个结果,返回回来也不知道是用户名被占用还是邮箱被占用了。
------解决方案--------------------
不要搞那么复杂,邮箱就是用户名。省的用户还得想个用户名想半天
------解决方案--------------------
首先,楼主请一定注意:
out.println(rs.next());     if(rs.next()){
你这样连着两个next(),可能有不必要的麻烦,自己想想会有啥问题


不要在页面里写代码了,邮箱占用和用户名占用的判断,分别写一个方法,在servlet里调用一下,结果返回页面