创建用户信息表:
复制代码 代码如下:
CREATE TABLE tbl_auth_user (
user_id VARCHAR(10) NOT NULL,
user_password CHAR(32) NOT NULL,
PRIMARY KEY (user_id)
);
INSERT INTO tbl_auth_user (user_id, user_password) VALUES ("theadmin", PASSWORD("chumbawamba"));
INSERT INTO tbl_auth_user (user_id, user_password) VALUES ("webmaster", PASSWORD("webmistress"));
我们将使用相同的html代码来创建登录表单在上述示例中创建的。我们只需要修改登录过程有点。
登录脚本:
复制代码 代码如下:
<?php
// 我们必须永远不会忘记启动会话
session_start();
$errorMessage = "";
if (isset($_POST["txtUserId"]) && isset($_POST["txtPassword"])) {
include "library/config.php";
include "library/opendb.php";
$userId = $_POST["txtUserId"];
$password = $_POST["txtPassword"];
// 检查用户id和密码组合存在于数据库
$sql = "SELECT user_id
FROM tbl_auth_user
WHERE user_id = "$userId"
AND user_password = PASSWORD("$password")";
$result = mysql_query($sql)
or die("Query failed. " . mysql_error());
if (mysql_num_rows($result) == 1) {
// sessionthe设置用户id和密码匹配,
// 设置会话
$_SESSION["db_is_logged_in"] = true;
// 在登录后我们转到主页
header("Location: main.php");
exit;
} else {
$errorMessage = "Sorry, wrong user id / password";
}
include "library/closedb.php";
}
?>
/ /…相同的html登录表单前一个示例一样
而不是检查用户id和密码对硬编码的信息我们查询数据库,如果这两个存在于数据库使用SELECT查询。如果我们发现一个匹配我们设置会话变量和移动到主页。注意,会话的名字是前缀 “db”使它不同于先前的示例。
在接下来的两个脚本(主要。php和注销。php)代码类似于前一个。唯一的区别是会话名称。这是为这两个的代码
复制代码 代码如下:
<?php
session_start();
//是一个访问这个页面登录呢?
if (!isset($_SESSION["db_is_logged_in"])
|| $_SESSION["db_is_logged_in"] !== true) {
// 没有登录,返回到登录页面
header("Location: login.php");
exit;
}
?>
/ /…这里的一些html代码
复制代码 代码如下:
<?php
session_start();
// 如果用户已登录,设置会话
if (isset($_SESSION["db_is_logged_in"])) {
unset($_SESSION["db_is_logged_in"]);
}
// 现在,用户登录,
// 去登录页面
header("Location: login.php");
?>