学生信息管理系统总结(一)
2016-05-28 16:08
239 查看
【序言】
学生信息管理系统--自己做的第一个系统,有独立完成的部分,其实更多的是比葫芦画瓢,但是调试和优化的时候也真的学到了很多的东西,虽然这些知识点很零碎,但是这是编制知识网的不可缺少的节点,我们要从总结中学会总结,记录自己的成长。
=================================================================
【问题1】登陆界面,用户名为“'”报错,SQL注入
经验证,即使是其他的文本框,输入单引号也一样会相同的错误,仍然是“91错误”,对象变量或with块变量未设置。引发91错误的原因有很多,但基本都与数据库语句相关。那么,我们先来看看我们的数据库语句,探究一下问题所在。
txtSQL = "select * from user_Info where user_ID = '" & txtUserName.Text & "'";
这行语句反映到数据库中就是:
txtSQL = "select * from user_Info where user_ID = '我们输入的用户名'
在SQL里面因为查询字符串前后需要加单引号,
数据库会根据我们输入的字符(用户名)来进行查找,
所以当我们输入单引号时,反映到数据库中的语句就变成了这样的:
txtSQL = "select * from user_Info where user_ID = '''
对,就是这样,是三个连着的单引号,这是数据库找不到两个单引号括起来的字符,于是就出现了这个SQL注入的问题,也叫做SQL入侵。
再来解释一下单引号和双引号的区别:
我们输入的字符需要两个单引号将其括起来,而在程序里面要把单引号加进去,所以单引号必须要用“”括起来,所以就要用双引号,单引号连用。
解决问题的方法其实很简单,只是利用Ascii码对单引号字符进行限制输入就好,具体步骤还请读者多多探索。
【问题2】修改密码时显示当前用户名
一开始的时候是这样的,
经过一番修改与优化,
本着一切为人民服务的思想,我们在提示用户修改密码时要注意两个问题。
①修改密码时提示当前用户名称。
②添加确认原密码项,且原密码和旧密码不能一样。
【总结】作为一名软件开发设计者,我们的首要任务是全心全意的为用户服务,方便用户,多多考虑用户的需要,怎样使用户的操作更加简单,我们就怎样优化。同时做好提示工作,要让用户明白系统的指示。
感谢您的阅读,未完待续~~
学生信息管理系统--自己做的第一个系统,有独立完成的部分,其实更多的是比葫芦画瓢,但是调试和优化的时候也真的学到了很多的东西,虽然这些知识点很零碎,但是这是编制知识网的不可缺少的节点,我们要从总结中学会总结,记录自己的成长。
=================================================================
【问题1】登陆界面,用户名为“'”报错,SQL注入
经验证,即使是其他的文本框,输入单引号也一样会相同的错误,仍然是“91错误”,对象变量或with块变量未设置。引发91错误的原因有很多,但基本都与数据库语句相关。那么,我们先来看看我们的数据库语句,探究一下问题所在。
txtSQL = "select * from user_Info where user_ID = '" & txtUserName.Text & "'";
这行语句反映到数据库中就是:
txtSQL = "select * from user_Info where user_ID = '我们输入的用户名'
在SQL里面因为查询字符串前后需要加单引号,
数据库会根据我们输入的字符(用户名)来进行查找,
所以当我们输入单引号时,反映到数据库中的语句就变成了这样的:
txtSQL = "select * from user_Info where user_ID = '''
对,就是这样,是三个连着的单引号,这是数据库找不到两个单引号括起来的字符,于是就出现了这个SQL注入的问题,也叫做SQL入侵。
再来解释一下单引号和双引号的区别:
我们输入的字符需要两个单引号将其括起来,而在程序里面要把单引号加进去,所以单引号必须要用“”括起来,所以就要用双引号,单引号连用。
解决问题的方法其实很简单,只是利用Ascii码对单引号字符进行限制输入就好,具体步骤还请读者多多探索。
【问题2】修改密码时显示当前用户名
一开始的时候是这样的,
经过一番修改与优化,
本着一切为人民服务的思想,我们在提示用户修改密码时要注意两个问题。
①修改密码时提示当前用户名称。
'当两次密码不一致时,数据库中的记录自动更新。 Private Sub Form_Load() '在label框中显示当前用户名 txtSQL = "select * from user_Info where user_ID = '" & UserName & "' " Set MRc = ExecuteSQL(txtSQL, MsgText) Crrunt_user = Trim(MRc.Fields(0)) lblCurrentuser.Caption = "当前用户名称为:" & Crrunt_user End Sub
②添加确认原密码项,且原密码和旧密码不能一样。
'先进行原名密码验证,是否与数据库中的原密码一致 txtSQL = "select * from user_Info where user_ID = '" & UserName & "' " Set MRc = ExecuteSQL(txtSQL, MsgText) If Trim(txtOldPassword.Text) = Trim(MRc.Fields(1)) Then '原密码的验证正确 * 此处省略验证成功后,修改新密码的代码项 ’新旧密码不能一样 Private Sub Text1_Change(Index As Integer) If Text1(0).Text = txtOldPassword.Text Then MsgBox "新密码不能和原密码一样!", vbOKOnly + vbExclamation, "警告!" Text1(0).Text = "" Text1(0).SetFocus End If End Sub
【总结】作为一名软件开发设计者,我们的首要任务是全心全意的为用户服务,方便用户,多多考虑用户的需要,怎样使用户的操作更加简单,我们就怎样优化。同时做好提示工作,要让用户明白系统的指示。
感谢您的阅读,未完待续~~
相关文章推荐
- 第十/十一周项目二(2)-储存班长信息的学生类
- css文本
- HTTP 十分钟教程
- 【中山市选2008】小树
- 好消息! 不用再羡慕Python有jupyter 我R也有Notebook了【附演示视频】
- Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces
- 练习三 1006
- sicily 4424
- 简单的进度条,水平进度条(二)
- 搭建hadoop平台的细节点与注意点
- Class org.apache.struts2.json.JSONWriter can not access a member of
- Ext JS与AngularJS
- 简单的进度条,圆形进度条(一)
- 抖动算法图像转换
- acm1002
- 使用struts、hibernate、spring进行框架整合流程详细说明
- AngularJS 使用总结
- 提示框二
- line-height,text-align设置文字水平垂直居中
- 用一般处理程序实现文件的下载(FileDownload.ashx)