前兩天用php和
Bootstrapt製作了一個登陸介面,其實這隻是一個很簡單的操作,但對於
Bootstrapt新手來說並不顯得輕鬆,因為
Bootstrapt裡面有一些新詞彙,需要慢慢理解並逐漸應用,對於英語基礎非常好的能夠很快消化,基礎稍微差點稍微折騰一番我覺得也能很快就熟練掌握的。廢話不多說,先上介面代碼。
header("Content-Type:text/html; charset=UTF-8");
?>
<strong>Bootstrap</strong> 模板
×
登入框
登入介面怎能可以沒有後台操作,在這裡我們將後台操作的檔案名稱命名為doLogin.php,只比登陸介面加了一個do,便於理解。
header("Content-Type:text/html; charset=UTF-");
@$login=$_REQUEST['login'];
@$password = $_REQUEST['password'];
if(empty($login) || empty($password)){
@$msg = "表單填寫不完整, 請檢查後重新填寫";
include "login.php";
die;
}
然後我們所要做的就是建立一個資料庫,資料庫我就使用的是mysql的,由於登陸介面我們需要插入的資料不多,我目前就只插入登入名稱和密碼的吧,只是做一個登入驗證的功能就行了。這個裡我用的檔案名稱是restaurant.php,下面是My Code
drop database if exists restaurant;
create database restaurant charset=UTF8;
use restaurant;
create table user(
id int primary key auto_increment,
login varchar(20) not null unique,
password varchar(20) not null
);
insert into user(login, password) values
('a', 'a');
select * from user;
然後的話我們還應該在doLogin中實現資料庫的驗證工作,驗證資料庫非常簡單,只需要4行代碼,在驗證資料庫完畢後我們還需要對登入名稱驗證在資料庫中是否存在,當條件為真的時候我們再判斷密碼是否正確,這樣我們的驗證工作才能說基本完畢。
$pdo = new PDO('mysql:dbname=restaurant; charset=UTF8', 'root');
$stat = $pdo->prepare('select login, password from user where login = :login');
$stat->execute(array('login'=>$login));
@$users = $stat->fetch(PDO::FETCH_NAMED);
if(empty($users)){
@$msg = "登入名稱不存在";
include "login.php";
die;
}
if($password != $users['password']){
@$msg = "密碼輸出錯誤";
include "login.php";
die;
}
header('Location:main.php');
在這裡我還要重新說一下,當使用者輸入的資訊和資料庫中儲存的資訊完全符合的時候我們才能說驗證通過,然後跳轉到mian.php這個頁面。但是這個時候問題就出現了,如客戶進入mian.php這個頁面後覺得很無聊就退出了,但是以客戶安全形度著想的話肯定是說登入過後才能訪問這個頁面,不能從所謂的記錄裡面找到這個使用者的首頁直接進入。這裡我想牽涉一個用戶端與瀏覽器互動方面的知識,比如說我們在工商銀行首頁查看個人資訊的時候就在跟瀏覽器進行互動,你賬戶的餘額都是從伺服器臨時傳送過來的,但是當你退出個人首頁你再次從記錄進入的時候就不行了,你必須重新登入,不然這就叫做非法訪問。為什麼呢,因為在你登入名稱密碼驗證成功之後到登入介面之前的這段時間瀏覽器會儲存一個臨時的session值,當你退出介面的時候瀏覽器的session的值就會登出掉,這時這個session值就會為空白,這樣就算是你本人想登入之前你的個人頁面也不行。你想一下就會知道你非法進入的時候session值為空白,為空白時自然就不能進入個人頁面,你想不為空白的唯一途徑就是老老實實的進行登入,不然我就只能說呵呵了。說了這麼久其實我的目的就是實現這個seesion的功能,我們只需在跳轉到mian.php這個頁面之前寫上兩句代碼就行,代碼如下:
session_start();
$_SESSION['userID'] = $user['id'];
然後,我們還有一個步驟,就是在mian.php這個頁面的開始出判斷session值是否為空白,為空白則不能訪問
session_start();
@$userID = $_SESSION['userID'];
if(empty($userID)){
$title = '嚴重警告';
$message = '你還未登陸,請登入後使用';
$jumpUrl = 'login.php';
include 'lib/message.php';
die;
}
最後還有一點我們需要注意,當session為空白的時候我們總不能直接跳轉到登入頁面吧!應該給一個提示訊息,既然是提示訊息我想還是應該來一個高端的Bootstrapt介面,比較簡潔美觀,雖然說代碼量多了一點點。
header("Content-Type:text/html; charset=UTF-8");
?>
<strong>Bootstrap</strong> 模板
" class="btn btn-default btn-sm">確定
ok,這就是我所說的登入介面,其實我也想說,尼瑪不就是一個登入介面嘛,怎麼有這麼多代碼,而且感覺沒兩句有用的。不過話說回來,前段就是這樣,在水平相同的情況下,代碼量與介面的美觀成正比。
以上就介紹了mysql、PDO、php和bootstrapt製作一個登陸介面外加幕後處理,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。