php+MySQL圖書管理系統(二)
第五 新增資料庫管理員資料與使用者資料
這個比較無聊 用java拼接了一下sql語句 然後寫入資料庫
這個放在附件上傳就好了
第六 管理員與使用者的登入驗證
1、驗證碼。驗證碼一般就是伺服器產生一個隨機數,儲存在session中,最後與使用者的輸入驗證。因為驗證碼是圖形顯示的,所以必須使用者手工輸入,避免機器自動識別,防止密碼暴力破解。 2、線上驗證。通過使用者的session值,(儲存在COOKIE中,如果使用者不使用COOKIE,則使用位址列GET方式向伺服器提交),比較使用者是否合法、超時。 3、上面兩個場合是通行的做法。但是還有一種做法,是當前比較先進的。那就是對於使用者的密碼加密傳送。 使用者的密碼,如果以http方式傳輸,一般都是明文傳送的,這樣的密碼,容易被嗅探器捕獲。 如果使用session,情況就好多了。在伺服器端取隨機數,隨機數在伺服器端儲存在session值中,並將隨機數通過html頁面js程式的方式傳送到客戶端。使用者端只要將隨機數和密碼的MD5結果傳送出去,服務端從session中取出隨機數和資料庫資料計算出結果,兩個結果進行比較。其中第三種應該是最安全的,當然也可以把方法結合起來一起用,這裡我只是將密碼做了一次MD5存放到資料庫了
下面是登入介面 自己寫的比較醜 直接找了一個開源Demo,想用的話去下載就好 或者直接獲取原始碼 我就不貼出來了
然後是登入驗證 這個比較簡單了 我先是簡單的把連線資料庫的程式碼放在了一個檔案中 ,封裝成一個個的函式,本來想封裝一個靜態類的,無奈php語言不熟悉,加上時間比較緊了所以直接就用函式好了,畢竟程式碼量不大
貼出程式碼:
<?php
function getLink(){
$link = mysql_connect('127.0.0.1', 'root', '') or die('
連線資料路失敗,請檢查後重試!');
if (!$link) {
echo "連線失敗1";
return '0';
}else{
return $link;
}
}
function getResoures($DBName, $sql){
try{
$db_select = mysql_select_db($DBName);
if (!$db_select) {
echo "連線失敗2";
//return '0';
}
$resoures = mysql_query($sql);
return $resoures;
}catch(Exception $e){
echo 'Caught exception: ', $e->getMessage(), "\n";
//return '1'.$e->getMessage();
}
}
function closeConnect($link){
if (null != $link) {
mysql_close($link);
}
}
?>
然後是把表單的資料提交給登入的驗證介面,同樣很簡單沒啥好說的
貼出程式碼:
<?php
/* 0 admin登入成功
* 1 admin密碼錯誤
* 2 admin管理員不存在
*
* 3 user登入成功
* 4 user密碼錯誤
* 5 user使用者名稱不存在
*/
require("MySqlUtils.php");
header("Content-type:text/html;charset=utf-8");
$username = $_POST["username"];
$password = $_POST["password"];
$password = md5($password);
$isAdmin = $_POST['isAdmin'];
if ($isAdmin){
$r = adminLogin($username, $password);
}else{
$r = userLogin($username, $password);
}
selectNext($r);
function selectNext($r){
if(!$r){
echo "<Script>alert('登入成功');</Script>";
}else if ($r == 1) {
echo "<Script>alert('密碼錯誤,請重新登入');</Script>";
echo "<Script>window.location.href='login.php'</Script>";
}else if ($r == 2){
echo "<Script>alert('不存在該管理員,請重新登入');</Script>";
echo "<Script>window.location.href='login.php'</Script>";
}else if ($r == 3){
echo "<Script>alert('登入成功');</Script>";
}else if ($r == 4){
echo "<Script>alert('密碼錯誤,請重新登入');</Script>";
}else {
echo "<Script>alert('不存在該使用者,請重新登入');</Script>";
}
}
function adminLogin($username, $password){
$link = getLink();
$resoures = getResoures('libray', 'select * from admin;');
$info = mysql_fetch_array($resoures);
while($info){
$u = $info['AdminID'];
$p = $info['Password_MD5'];
if ($username == $u) {
if ($password == $p) {
return 0;
}else{
return 1;
}
}
$info = mysql_fetch_array($resoures);
}
closeConnect($link);
return 2;
}
function userLogin($username, $password){
$link = getLink();
$resoures = getResoures('libray', 'select * from card;');
$info = mysql_fetch_array($resoures);
while($info){
$u = $info['CardID'];
$p = $info['Password'];
if ($username == $u) {
if ($password == $p) {
return 3;
}else{
return 4;
}
}
$info = mysql_fetch_array($resoures);
}
closeConnect($link);
return 5;
}
?>
做到這個就可完成登入了
我把程式碼存到了百度雲 連結:http://pan.baidu.com/s/1kTKNBaZ 密碼:c0rj
我會一步一步更新 如果這個連結失效了 請往下部落格中去找最新的
相關文章
- 圖書管理系統
- Django學習筆記《二》圖書管理系統Django筆記
- 圖書管理系統類圖
- VB 圖書管理系統
- 圖書管理系統2
- 圖書管理系統需求說明書
- 圖書管理系統(小程式)
- 圖書管理系統設計類圖
- 校園圖書管理系統開發-中小學智慧圖書管理系統開發
- 圖書館管理系統UML建模
- 圖書館管理系統 SRS文件
- 實用圖書管理系統1.1
- Python—簡單圖書管理系統Python
- Django教程 —— 初步完善圖書管理系統Django
- Django入門案例:圖書管理系統Django
- 圖書管理系統-專案介紹
- 圖書管理系統測試計劃
- 圖書館管理系統程式設計程式設計
- 工會圖書管理系統 V1.0
- 口罩預約管理系統——系統網站實現(前端+PHP+MySQL)網站前端PHPMySql
- 實驗專案四:圖書管理系統
- 物件導向設計-圖書管理系統物件
- 圖書管理系統——執行及總結
- 圖書管理系統——測試與除錯除錯
- flask框架圖書管理系統客戶端Flask框架客戶端
- 圖書系統
- C++圖書館管理系統 [STL實現]C++
- 圖書館管理系統程式測試計劃
- flask框架圖書管理系統伺服器端Flask框架伺服器
- Java寫圖書管理系統(四、管理員功能許可權)Java
- 解讀圖書管理系統為書店帶來的好處
- 口罩預約管理系統——資料庫設計(前端+PHP+MySQL)資料庫前端PHPMySql
- java大作業總結——圖書借閱管理系統Java
- Rails 實戰——圖書管理系統——基礎建設AI
- 圖書館管理系統物件導向程式設計物件程式設計
- 第一次作業——圖書管理系統
- 圖書館系統(8)
- 利用物件導向做簡略的圖書管理系統物件