数据库中管理员登陆

问题描述

/* * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */package com.school.struts.action;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import com.school.struts.form.MloginForm;public class MloginAction extends Action {  public ActionForward execute(ActionMapping mapping, ActionForm form,   HttpServletRequest request, HttpServletResponse response) {  MloginForm mloginForm = (MloginForm) form; // TODO Auto-generated method stub    String username = mloginForm.getUsername();  String password = mloginForm.getPassword();    if(username.length()==0||password.length()==0){   return mapping.getInputForward();  }       System.out.println("managername=" + username + "    password=" + password);  Statement stmt =null;  ResultSet rs = null;        String sql = "select * from managersdata where managername = '"    + username + "' and password = '" + password + "'";       try{       Class.forName("com.mysql.jdbc.Driver");   Connection conn = DriverManager.getConnection(     "jdbc:mysql://localhost:3306/logistics", "root", "123456");   stmt = conn.createStatement();   rs = stmt.executeQuery(sql);  if (username.equals(mloginForm.getUsername()) && password.equals(mloginForm.getPassword())){    return mapping.findForward("success");   }else{    request.setAttribute("errorinfo", "用户名或者密码不正确!");       return mapping.findForward("failure");   }  // else return mapping.getInputForward();         } catch (Exception ex) {   System.out.println(ex.getMessage());  } finally {   try {    rs.close();    stmt.close();   } catch (SQLException e) {    e.printStackTrace();   }  }  return mapping.getInputForward(); }}代码如上,登陆的时候无论数据库中是否有管理员的数据都登陆成功 怎么解决。。

解决方案

String username = mloginForm.getUsername(); String password = mloginForm.getPassword(); if (username.equals(mloginForm.getUsername()) && password.equals(mloginForm.getPassword())){这不是自己与自己比较嘛 肯定永真啊 rs = stmt.executeQuery(sql); 你应该得到rs 判断有没有数据 有 就登录成功 否则失败String sql = "select * from managersdata where managername = '" + username + "' and password = '" + password + "'"; 这个有sql注入问题
解决方案二:
[color=red]String username = mloginForm.getUsername(); String password = mloginForm.getPassword();[/color] if (username.equals(mloginForm.getUsername()) && password.equals(mloginForm.getPassword())){ return mapping.findForward("success"); }else{ request.setAttribute("errorinfo", "用户名或者密码不正确!"); return mapping.findForward("failure"); }应该拿数据库中取出记录条数是否为0来判断

时间: 2024-09-20 05:21:33

数据库中管理员登陆的相关文章

sqlite删除数据库中的数据时偶尔会出现错误

问题描述 sqlite删除数据库中的数据时偶尔会出现错误 java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed. 求助,connection pool 是啥啊,求大神指教. 解决方案 如果确定不是连接被关闭,那还有可能就是多线程访问sqlite,sqlite数据库是单线程操作的,那么当N多个Thread同时调用的时候,可能报这错误.这也就

哪位大神指导一下,关于Oracle数据库中类型varchar2(2) 存储汉字的问题

问题描述 哪位大神指导一下,关于Oracle数据库中类型varchar2(2) 存储汉字的问题 大神们跪求招数:orcale数据库中的一个字段YXQDW(有效期单位) 类型varchar2(2) 才两字节 用来存一个汉字,比如"年",我的项目(C#)一个汉字占用3个字节, 写SQL语句 insert不进去啊,提示字段范围超出了.难不成要像blob字段那样写?或者有什么更好的方式能将该字段插入呢?万分感激! 解决方案 可以换成nvarchar(2),这个是可变长度

Sql语句,当在页面插入一个字段的时候,和数据库中的表字段进行对比,有这个名字就数量相加

问题描述 Sql语句,当在页面插入一个字段的时候,和数据库中的表字段进行对比,有这个名字就数量相加 Sql语句,当在页面插入一个字段的时候,和数据库中的表字段进行对比,有这个名字就数量相加,没有的话重新加入一条新的记录,Sql语句怎么实现? 当我页面添加的是"利群"时,添加一盒,那么数据库中利群这条记录中的num字段中的4变成5,如果是页面添加的是"黄鹤楼"同理,如果添加的不是name字段中的这两个,就新插入一条数据.Sql语句怎么写??急急急. 是Mysql的数据

使用BIRT和Eclipse从数据库中提取信息

业务报告和分析是一个复杂的过程,在想要生成一个看起来很专业的报告时,总是很难获得完美的结果.更难的是定期使用新的或更新的数据重复该练习.Business Intelligence and Reporting Tools (BIRT) 是一组用于 Eclipse 的插件,它允许从数据库从提取信息,分析该信息,然后生成用于报告的总结.图表和分析. 开始之前 如果拥有收集或生成数据的程序,并且需要使用各种报告分析的数据,则本教程可以帮助您更好地了解如何使用 Business Intelligence

40-.net如何从数据库中的一个表中取值

问题描述 .net如何从数据库中的一个表中取值 假设这是我数据库里的一张表(数据库是oracle),我该如何取得这些数将他们传给jsonObj.Rows,求教各位大神,能给个具体的实现过程吗? 解决方案 sonObj.Rows是你自己组装的json对象吧,你首先要查询数据库,这个自己看msdn把,很简单,获取值后开始组织json就行了 解决方案二: 自己读取数据后,通过服务器端代码赋值给aspx上的script标签就行,注意<%%>这种代码不能放js文件里面,必须是在aspx页面里面才能解析运

文件上传是存在硬盘上,还是存在数据库中?

问题描述 文件上传是存在硬盘上,还是存在数据库中? 如果有比较多的文件上传,上千个文件,大小2-3MB,是存在硬盘上,还是存在数据库中? 存在硬盘上,路径保存在数据库中,是比较方便,但是存在一台server上出问题怎么办?是不是应该转换成google二进制存到数据库(MySQL)中? 解决方案 直接备份文件系统啊,这是最基本的,存到数据库很费劲的.而且你的文件还特别多.不划算了,. 解决方案二: 附件多媒体室存硬盘,其它的文字数据存数据库 解决方案三: 比较通行的办法是,将文件存在硬盘中,数据库

树结构-如何将各个级别的menu菜单存储到数据库中

问题描述 如何将各个级别的menu菜单存储到数据库中 如何将各个级别的menu菜单存储到数据库中.这些菜单类似一个树结构. 解决方案 很简单,存储菜单id,上一层菜单的id和菜单信息,这三个字段,就可以实现树型的菜单了. 解决方案二: 其中顶层菜单的上一层菜单的id为null

数据库 删除-为什么我删除了listview中的值,数据库中没删除呢

问题描述 为什么我删除了listview中的值,数据库中没删除呢 string connstr = ""Provider=Microsoft.Jet.OleDb.4.0;""; connstr += @""Data Source=D:Merger20150208_caohuanGEARCNC.mdb""; OleDbConnection tempconn = new OleDbConnection(connstr);//连接数

网站设计中如何将对应的用户网页的数据保存在数据库中

问题描述 网站设计中如何将对应的用户网页的数据保存在数据库中 最近在做一个关于二手书交易平台的小项目(毕业设计),在处理用户登录后自动跳转到所对应的用户个人网页时没什么思路,求各位大神指点一下...小妹初来乍到,不甚感激啊... 解决方案 并不是直接把用户的网页保存在数据库中,而是把用户的信息存在各张数据表中.在用户登陆后可以获取到用户的ID(确保是唯一的),根据这个ID获取数据表中用户的相关信息,然后在用户个人页面进行展示..比如表A是用户表,其主键为user_id,同时user_id为表B的