那么晚还在加班,精神可嘉!
问题一定是(zpower>=hpower)=false;
就是power<0;
问题在power;
.......
真想帮一下,可惜程序太长了我也看不出来。

解决方案 »

  1.   

    首先,我不知道是这里发帖子的问题,还是你写的问题,这里:
    String sql="select count(*) as num_user from user1 where name='''+ uname +''' and passwd='''+ passwd +'''";

    sql="select ID,name,nick,passwd,post from user1 where name='''+ uname +''' and passwd='''+ passwd +'''";
    这里的'''是什么意思?不知道你是从哪里学来的?是从ASP派生出来的吗?
      

  2.   

    首先,我不知道是这里发帖子的问题,还是你写的问题,这里:
    String sql="select count(*) as num_user from user1 where name='''+ uname +''' and passwd='''+ passwd +'''";

    sql="select ID,name,nick,passwd,post from user1 where name='''+ uname +''' and passwd='''+ passwd +'''";
    这里的'''是什么意思?不知道你是从哪里学来的?是从ASP派生出来的吗?
      

  3.   

    我先测试一下:
    name='" + uname + "' and passwd='" + passwd + "'"
      

  4.   

    建议不要让if - else 语句包含的语句太多了![容易造成程序不清晰]改写:
    if (pub.length()<1) {
      out.println("URL请求错误!");
      return;
    }
    ...
    ...
    ...
    if (num_user!=1) {
      out.println("用户名或密码错误!<a href='javascript:history.go(-1);'>返回</a>");
      return;
    }
    ...
    ...
    ...
      

  5.   

    生成sql语句的错误:
      "select count(*) as num_user from user1 where name='''+ uname +''' and passwd='''+ passwd +'''";改:   "select count(*) as num_user from user1 where name='"+ uname +"' and passwd='"+ passwd +"'";其余同理
      

  6.   

    既然sql="select count(*) as num_user from user1 where name='''+ uname +''' and passwd='''+ passwd +'''";
    那么num_user = rs.getInt("num_user");是不是应该改为:num_user = rs.getInt(1);
    count(*)应该用rs.getInt(1)
      

  7.   

    <%@ page contentType="text/html;charset=gb2312"%>
    <%@ page language="java" %>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.io.*" %> 
    <%@ page import="java.util.*" %>
    <jsp:useBean id="LoginBean" scope="page" class="db.DbConnection" />
    <%
    String pub=request.getParameter("pub");
    String uname=request.getParameter("uname");
    String passwd=request.getParameter("passwd");
    if (pub.length()>0) {
      LoginBean.openConnection();
      String sql="select count(*) as num_user from user1 where name='"+ uname +"' and passwd='"+ passwd+"'";
      ResultSet rs = LoginBean.executeQuery(sql);
      int num_user = 0;
      int U_ID=0;
      //rs.last();
      //int num_user=rs.getRow();
      if (rs.next()) {
        num_user = rs.getInt("num_user");
      }
      rs.close();
      if (num_user==1) {
        sql="select ID,name,nick,passwd,post from user1 where name='"+ uname +"' and passwd='"+ passwd +"'";
        //rs.first();
    rs = LoginBean.executeQuery(sql);
    if (rs.next()) {
     U_ID=rs.getInt("ID");
     String U_nick=rs.getString("nick");
     int U_post=rs.getInt("post");
         session.putValue("ID",String.valueOf(U_ID));
     session.putValue("name",uname);
     session.putValue("nick",U_nick);
        session.putValue("passwd",passwd);
    session.putValue("post",String.valueOf(U_post));
        }
    rs.close();
         sql="select logintime,cishu from user1 where ID="+ U_ID;
    rs = LoginBean.executeQuery(sql);
        String logintime = null;
    if (rs.next()) {
    logintime=rs.getString("logintime");
    String cishu=rs.getString("cishu");
    }
    rs.close();
    Cookie Thelogintime=new Cookie("cookielogintime",logintime);
    response.addCookie(Thelogintime);
    sql="select (CURRENT_TIMESTAMP(getdate())-CURRENT_TIMESTAMP(likai)) as nstaytime from user1 where ID="+ U_ID;
    rs = LoginBean.executeQuery(sql);
       int nstaytime=0;
    if (rs.next()) {
    nstaytime=rs.getInt("nstaytime");
        nstaytime=nstaytime/3600;   
             }
        rs.close();    sql="select power,hpower from userdata where UID="+ U_ID;
        rs = LoginBean.executeQuery(sql);
    int power=0;
    int hpower=0;
    int hfpower=0;
    if (rs.next()) { power=rs.getInt("power");
    hpower=rs.getInt("hpower");

    }
        rs.close(); hfpower=hpower*nstaytime/12;
    int zpower=hfpower+power;

    if (zpower>=hpower) {
        hfpower=hpower-power;
        } sql="update userdata set nstaytime="+ nstaytime +",power=power+"+ hfpower +" where UID="+ U_ID;
    LoginBean.executeUpdate(sql); sql="update user1 set logintime=getdate(),cishu=cishu+1 where ID="+ U_ID;
        LoginBean.executeUpdate(sql);
        LoginBean.close();
    response.sendRedirect("main.jsp");  }
      else {    out.println("用户名或密码错误!<a href='javascript:history.go(-1);'>返回</a>");
      
      }
    }
    else {  out.println("URL请求错误!");}
    %>