在用户的登录出设置session,你得想通这个逻辑。 当用户提交信息与从数据库里查询的信息比对成功,下一步就设置个session来标记用户登录成功。在其他页面就可以通过判断设置的session来获取是否登录的信息了。
无论你用什么语言,思路都是一样的,只是实现的方法不一样,首先你要建立连接,要设置connection,然后要设置Query的connection(可能语言不同这个叫法不一样,但是都是用来查询数据库的),在query里写sql语句。判断的思路很简单分一下几步:
第一步 判断用户名和密码的框是否有为空的,只要有一个为空就提示请输入用户名和密码
第二步 都不为空,将文本框中的用户名到数据库中查询,如果查询不到就提示用户名不存在
第三步 如果用户名存在,那么取出返回结果中的密码字段的值,判断密码是否与输入的密码一样,如果一样那么成功登录,不一样说明密码输入错误
这个做法有很多种,给你举个例子,当然第一步都是一样的,往后校验就有很多种方式了。
1登录界面输入用户名,密码,这个可以直接从界面上得到,并赋值给变量。
2根据界面输入的用户名,到后台查询出后台表中的这个用户名对应的密码,赋值给另一个变量。
3对比两个密码的变量是否相同,如果不同,那么密码错,登录不成功,否则登录成功。
举例代码:
string ls_user, ls_pwd, ls_pwd_db
ls_user = sle_usertext //获取界面上用户输入的用户名
ls_pwd = sle_pwdtext //获取用户输入的密码
select pwd
into :ls_pwd_db
from 用户表
where user_id(用户名) = :ls_user;
//这里用户表主键肯定是登录账号,登录账号肯定是不重复的,所以以上语句肯定会得到一个结果
if isnull(ls_pwd_db) then
//密码返回为空,如果密码字段不为空,那么只能是上述语句没有返回值,那么可能是用户名输入错误,此处做相应的处理
return
end if
if ls_pwd_db = ls_pwd then
//密码一致,登录成功,打开主界面
open(w_main)
close(parent)//关闭当前登录界面
else
//密码不一致,输入错误处理
messagebox("","密码输入错误")
end if
//说明 你要先建立一个access的数据库文件 名称是yhmmdb
//数据表 zl里面有usename即用户名字段 和 password即密码字段
//其中的sql语句改一下就可以了 参照2楼
//以下是在控制台中简单测试
using System;
using SystemCollectionsGeneric;
using SystemLinq;
using SystemText;
using SystemDataOleDb;
using SystemWeb;
namespace ConsoleApplication1
{
class Program
{
//控制台测试连接Access数据库
//2010 - 6 - 1
static void Main(string[] args)
{
OleDbConnection conn = null;
OleDbDataReader reader = null;
try
{
conn = new OleDbConnection("Provider=MicrosoftJetOLEDB40;Data Source=yhmmdb ;");
connOpen();
string name = "lee";
OleDbCommand cmd = new OleDbCommand("Select username FROM zl where username= '" + name + "' ", conn);
reader = cmdExecuteReader();
if (readerRead())
{
ConsoleWriteLine("读取成功");
}
else
{
ConsoleWriteLine("读取失败");
}
}
finally
{
if (reader != null) readerClose();
if (conn != null) connClose();
}
}
}
}
private bool CheckUserID(String UserID,String Password)
{
String sql="select password from users where userid=@userid";
SqlDataAdapter da=new SqlDataAdapter(sql,new SqlConnection(connString));
daSelectCommandParametersAddWithValue("@userid",UserID);
DataTable dt=new DataTable();
daFill(dt);
if(dt!=null&&dtRowsCount>0)
{
if(PasswordEquals(dtRows[0]["password"]))//这里未考虑密码加密的情况,如果加密了,需要先处理把输入的Password做加密后再比较
{
return true;//表示输入的账号和密码与数据库中存储的相同
}
return false;//表示数据库中存储有该账号,但密码不同
}
return false;//表示数据库中未查到存有该账号的记录
}
<php
if(isset($_POST["submit"]) && $_POST["submit"] == "登陆")
{
$user = $_POST["username"];
$psw = $_POST["password"];
if($user == "" || $psw == "")
{
echo "<script>alert('请输入用户名或密码!'); historygo(-1);</script>";
}
else
{
mysql_connect("localhost","root","");
mysql_select_db("vt");
mysql_query("set names 'gbk'");
$sql = "select username,password from user where username = '$_POST[username]' and password = '$_POST[password]'";
$result = mysql_query($sql);
$num = mysql_num_rows($result);
if($num)
{
$row = mysql_fetch_array($result); //将数据以索引方式储存在数组中
header("location:QAphp");
echo $row[0];
}
else
{
echo "<script>alert('用户名或密码不正确!');historygo(-1);</script>";
}
}
}
else
{
echo "<script>alert('提交未成功!'); historygo(-1);</script>";
}
>
这里提供个参考
关键是sql语句,如果你用jdbc+dao的话就是
select count(当前表的id名比如id) from user where userid= 接收的用户名 and password=接收的密码
然后取得值看该值是否大于0,如果大于0返回一个true值或者直接返回该值,然后判断只要大于0就表示登录成功,和数据库中一样。
你可以通过request跳转,如果登录成功就跳转到登录成功界面,并把你的登录信息保存到session中。否则就直接重定向到登录界面让用户重新登录。
扩展资料:
程序功能
创建数据库
CREATE DATABASE database-name
删除数据库
drop database dbname
创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],)
删除新表
drop table tabname
增加一个列
Alter table tabname add column col type
添加主键
Alter table tabname add primary key(col)
删除主键
Alter table tabname drop primary key(col)
创建索引
create [unique] index idxname on tabname(col…)
删除索引
drop index idxname
创建视图
create view viewname as select statement
删除视图
drop view viewname
参考资料来源:百度百科-sql语句
以上就是关于php中如何用session判断用户是否以登陆全部的内容,包括:php中如何用session判断用户是否以登陆、在登录页面中连接数据库,并且判断用户名和密码是否合法,并显示登陆成功的结果。、pb调用数据库,进行登陆,判断用户名和密码的语句格式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)