$link_id
=mysql_connect(
$DBHOST
,
$DBUSER
,
$DBPWD
);
mysql_select_db(
$DBNAME
);
//选择数据库 my_chat
//查询是否存在登录用户信息
$str
="select name,password from user where name ='$user_name'";
$result
=mysql_query(
$str
,
$link_id
);
//执行查询
@
$rows
=mysql_num_rows(
$result
);
//取得查询结果的记录笔数
$user_name
=
$_SESSION
["user_name"];
$password
=
$_POST
["password"];
$salt
=
substr
(
$password
, 0, 2);
$password_en
=crypt(
$password
,
$salt
);
//使用 crypt()对用户密码进行加密
//对于老用户
if
(
$rows
!=0)
{
list(
$name
,
$pwd
)=mysql_fetch_row(
$result
);
//如果密码输入正确
if
(
$pwd
==
$password_en
)
{
$str
="update user set is_online =1 where name ='$user_name' and password='$password_en'";
$result
=mysql_query(
$str
,
$link_id
);
//执行查询
require
("main.php");
//转到聊天页面
}
//密码输入错误
else
{
require
("relogin.php");
}
}
//对于新用户,将其信息写入数据库
else
{
$str
="insert into user (name,password,is_online) values('$user_ name','$password_en',1)";
$result
=mysql_query(
$str
,
$link_id
);
//执行查询
require
("main.php");
//转到聊天页面
}
//关闭数据库
mysql_close(
$link_id
);
?>
示例与上一节所介绍的使用
XOR 加密算法来保护用户信息非常类似,其核心部分在于第
16、17 行使用 crypt()函数获取加密后的密码,而通过在第 25 行比较数据库中的密码和加密
后的密码是否相等来检查用户是否合法。
下面,通过一个实例来看一下加密后的密码会变成什么样子。