各位先進好
小弟參考了下列網址做了一個登入頁面
http://james670818.pixnet.net/blog/post/2337519-%5Bphp%5D-%E8%A3%BD%E4%BD%9C%E7%99%BB%E5%85%A5%E9%A0%81%E9%9D%A2
但我目前都是做個別登入的動作
例如
A網頁一個登入頁面,資料庫為susersA
B網頁一個登入頁面,資料庫為susersB
C網頁一個登入頁面,資料庫為susersC
如果再A B C網頁放在一起
如何在susersA裡的帳號登入時只能看見A網頁的東西,susersB裡的帳號登入時只能看見B網頁的東西。
或是有更好的做法 請指教,謝謝。
透過 帳號判別啊,可以直接用 IF 函式寫出哪個帳號只能存取哪個資料庫
或是建立一個 USER 資料庫然後把USER 可以存取的資料庫寫清楚
這樣USER 登入後只要一查詢資料庫,就能知道 USER 可以存取哪個資料庫了
請問這段程式碼寫完是放入LOGIN那一頁裡嗎?
是放在資料查詢頁面吧
一個資料庫也許幾千個表
幾千個表也許有幾百個表單
每個表單都要設定好USER 要去查詢哪個資料庫啊
這在每個表單前面都要先定義好的
Login 之後是透過 COOKIE 或 SESSION 確認 USER 已經登入了
然後自然你要設定一些系統常數,來讓後續的程式使用
當然你也可以直接把 USER 可以查詢哪個資料庫放到 SESSION 或 COOKIE 裡面
但不太建議這麼做
一個簡單的表單權限管理系統如下
上面是根據你想要的方式,進行簡單的資料表格推演
但一般來說,大多數的系統,除非必要,很少為單一使用者建立資料庫
而是針對表單進行權限控管,至於資料庫,在一般的ERP 系統
大多是用來建立公司單位來使用的,而上述1~6表單,會放在系統管理的資料庫內
當前端載入 表單時,就會去載入當前使用者有什麼權限,如無權限,會自動顯示警告
若有權限,則自動顯示使用者可以操作的項目,這是很基本的表單設計概念
有興趣可以自行去找相關書籍來看看,或是參考一下別人寫好的系統
相關的資料流程該如何定義,對你的設計會有所幫助的
修改方式:
1.先建一個TABLE : 功能登入驗證及權限管理. 所以這個TABLE 至少要有三個欄位: 登入帳號,使用者名稱,權限.
2.新增一個登入網頁, 當USER登入時,先檢查帳號/密碼後,再將"權限"讀到變數中.語法:
session_register("AdminRights");
$_SESSION['AdminRights']=explode(",",$rs['權限']);
3.在目前的網頁最前面增加權限判斷.
if( ! in_array("8",$_SESSION['AdminRights'])){
提示"無權限"
RETURN 回登入畫面
}
建議用「角色」來管理權限,這樣會比較有彈性。
你需要定義幾個東西:
經由帳號就可以知道他擁有的角色,經由角色就可以知道他擁有的權限,經由權限就可以知道他是否可以存取目前的頁面。
一個帳號擁有多個角色會比較麻煩,在某些操作需要提昇或者說轉換角色。就像Windows的UAC或是Unix的sudo一樣,某些操作需要管理者權限時,他會提示你確認以取得權限。一般的操作就是使用一般使用者的權限。
這種設計方式,有個專有名詞叫做RBAC(role base access control)...維基上也查的到,還有美國的國家標準XD,不過建議先不要管他,因為有點小複雜,怕你反而越弄越不清楚。