創建用戶信息表:
復制代碼 代碼如下:
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');
?>