1. 用数据库怎样验证账号和密码?
1,先建立一个数据库UserTest。
2,在里面建立一个表叫UsersTable,设计表,建立三个列:u_id, u_name, u_pwd。
3,u_id是int数据类型,自增1;u_name是nvarchar类型,长度12;u_pwd是varchar类型,长度12,然后保存该表。
4,打开表,在第一行u_name输入“abc”,u_pwd输入“abc”。关闭表。
5,打开VS,新建一个Web项目。双击默认的default.aspx页面,然后将 ... 替换成下面的代码:
HTML code
yunleizhilian 的登录示范
用户名:密码:
6,按F7,进入代码视图,在Page_Load()里写下面的代码:
C# code
protected void Page_Load(object sender, EventArgs e)
{
//确保页面是第一次被访问
if (!Page.IsPostBack)
{
CheckPageStatus();
}
}
//通过判断Session["UserName"]是否为空检查页面是否已登录(登录成功时会为Session["UserName"]注入值,就不空了。。否则就认为没有登录)。
private void CheckPageStatus()
{
if (Session["UserName"] != null)
{
pnlLogin.Visible = false;
pnlWelcome.Visible = true;
lblWelcome.Text = "欢迎登录," + Session["UserName"].ToString() + " 同志";
}
else
{
pnlWelcome.Visible = false;
pnlLogin.Visible = true;
}
//这个用来接收登录或退出后的信息。个人习惯,你也可以不这么做。
if (Session["Message"] != null)
{
lblMessage.Text = Session["Message"].ToString();
Session.Remove("Message");
}
else
lblMessage.Text = "";
}
7,先告一段落,按F5运行下,看看效果,你会发现当没有登录时,“退出”那部分没有显示。真神奇啊。
8,然后关闭这个IE页面,按VS左下角的“设计”,切换到设计视图。
9,双击设计视图的“登录”按钮,为它编写登录代码如下:
C# code
protected void btnLogin_Click(object sender, EventArgs e)
{
//下面的登录方法只是我的习惯而已,我常用DataTable做所有的事情。建议你不要依赖它……否则会被人笑话的……登录的好方法有很多,参考下就好了。
string strConnection = "SERVER=(local);DATABASE=UserTest;UID=sa;PWD=";//PWD=后面写上你的SQL SERVER 的 sa密码。
System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection(strConnection);
//SQL 语句会吧?不会没办法,照抄吧。
string strSql = "SELECT * FROM UsersTable WHERE u_name='" + txbUserName.Text + "' AND u_pwd='" + txbUserPassword.Text + "'";
//SqlDataAdapter这东西有什么用,建议你去查MSDN。
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(strSql, cn);
System.Data.DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows.Count > 0)
{
Session["UserName"] = dt.Rows[0]["u_name"].ToString();
Session["Message"] = "登录成功!";
Response.Redirect("default.aspx");
}
else
{
Session["Message"] = "登录失败。请重新登录。";
Response.Redirect("default.aspx");
}
}
10,再按F5测试下,在用户名和密码内输入123,按下“登录”按钮,会提示登录失败。如果都输入abc,就会提示登录成功。因为数据库内只有abc这个用户。
11,关闭IE页面,最后我们做退出。
12,回到设计视图,双击“退出”按钮,为它编写下面的代码:
C# code
protected void btnQuit_Click(object sender, EventArgs e)
{
if (Session["UserName"] != null)
{
Session.Remove("UserName");
Session["Message"] = "退出成功,欢迎您再来啊";
Response.Redirect("default.aspx");
}
}
13,按F5运行,登录成功后,按“退出”按钮,系统会提示已经退出。
14,为了验证用户是否已登录,你需要在所有需要登录的页面的Page_Load()内添加:
C# code
if(Session["UserName"]!=null)
//用户可以访问。
else
//用户不能访问,扔回到登录页面:Response.Redirect("login.aspx");
2. 数据库问题:登录时,用户名和密码与数据库中的记录进行校验,如何实现?
先根据用户输入的用户名查找数据中是否有这条数据,如果没有,提示该用户不存在,如果有就直接将这条数据取出,将用户输入的密码跟取出的数据进行比较,若相同就登陆该软件,不相同就提示密码错误。。。。
3. 如何在VC++用ADO连接数据库时需要验证账号密码(通过数据库验证)
那要事先在数据库里面存好账号和密码
然后进行验证,而且最好要对特殊格式的字符进行屏蔽,不然很容易就破解了
我以前写过一个MFC+SQL2005的程序,并做好了数据库移植
http://et214721856.download.c s d n.net/ 避免百度TM对此连 接屏蔽,请把后面的 C S D N的空格去掉
4. 怎么检查数据库用户的密码是否为空
假使你的表叫 user, 密码栏位叫 password
select * from user where password is null or isnull(password, '') = ''
5. SQL2000数据库与C#代码进行链接 我做了一个登陆的窗体 登陆时验证数据库中的用户名和密码一致才能登陆
我一般做法是查询数据库中的数据.匹配用户名和密码.看看能不能select出数据来
如果select之后存在行.表示用户名密码存在.那么就通过验证了....
所以sql查询语句就变成了
select * from SyUser where username=@username and pwd=@pwd
@username @pwd都是参数.丢进去就OK了.这样可以防止一些注入....方便点.
如果按照你现在写的方法.把所有用户数据查出来一个一个匹配.循环到你郁闷.效率是个问题
6. 怎样把密码加密存入数据库?而且在数据库中显示的是其他代码。用在密码验证上
把密码转换成MD5再存入数据库
7. java连数据库是的对等代码怎么写啊?例如:密码怎样与数据库中的密码验证正确还是错误。
输入的密码与数据库中的密码一个个比较啊.不就行了么.
常见连数据库的代码;
FirstJDBC
import java.sql.*;
public class FirstJDBC
{
public static void main(String args[])
{
try{
//1. 加载驱动
//Class.forName("org.gjt.mm.mysql.Driver");
Class.forName("oracle.jdbc.driver.OracleDriver");
//2. 建立连接
//Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","1234");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.206:7777:tarena","wsd0701","wsd0701");
//3. 创建Statement
Statement stmt = con.createStatement();
//4. 执行SQL
String sql = "select id,name from t_user";
ResultSet rs = stmt.executeQuery(sql);
//5. 处理结果集
while( rs.next() )
{
System.out.println("id: " + rs.getInt(1)+"\tname: " + rs.getString(2));
}
//6. 释放资源
rs.close();
stmt.close();
con.close();
}catch(Exception e){e.printStackTrace(); }
}
}
8. php连接mysql数据库,账号密码的验证问题。
这个就是比较基础的事情啦
你的代码中:if(mysql_affected_rows($link)!=0)
意思是某个查询所影响的行数,如果用户名和密码都不对,将返回0行,当然就不能通过验证啦
这样是一次性验证了用户名和密码.
但是你的sql语句有问题
应该这样 : $sql2="select * from user where name = '$name' and password = '$pass'";
你要获取查询的结果: 一般都用 mysql_fetch_array();
按照你上面例子用法
$result = mysql_query (select * from user where name = '$name')
$row = mysql_fetch_array($result);
如果你的sql语句没错话,用户名又存在
那么 就返回了一个数组 $row
你用echo $row[0] 或者 $row['name'] 试试就可以获得内容
你获得了用户名之后,就可以继续查询秘密是否正确啦..
原来一样
还不懂的话,来我博客看看 我也在学习php 大家交流一下
http://blog.hzw513.com