2014-04-16 119 views
0

對於我的網站,我有兩個單獨的用戶 - 工作人員和客戶,然後進行兩次單獨登錄,以便用戶的電子郵件地址和密碼不會授予員工訪問權限。但是,儘管我的員工登錄他們訪問的頁面對其他用戶來說也是不可見的,但是如果用戶找到了URL並鍵入它們,他們仍然可以查看該鏈接。我想改變它,以便如果他們找到URL並嘗試查看它們,系統會提示他們進行登錄。對某些頁面的授權訪問

我已經創建了一個會話代碼,告訴我放置每個頁面的頂部,我希望保持私人,但它不起作用,我想問這是否是錯誤的。

if(isset($_SESSION['staffId'])) 
$_SESSION['staffId']=$_SESSION['staffId']+1; 
else 
$_SESSION['staffId']=1; 
echo "StaffId=". $_SESSION['staffId']; 
session_destroy(); 

在我的數據庫中有我STAFFID因爲在那裏我有我的上市工作人員一列,staffType作爲另一種類型S以及他們的其他細節

感謝您的幫助!

回答

0

即使您破壞會話,流程仍在繼續,人們可以看到頁面的其餘部分。你可以做到以下幾點:

套裝$_SESSION['staffId']當員工登錄

設置$_SESSION['customerID']當客戶登錄

爲員工專屬網頁使用:

if(!isset($_SESSION['staffId'])) 
    die("Access not allowed for customers"); 

但對於客戶頁面,您仍然需要檢查他們是否確實已登錄:

if(!isset($_SESSION['customerID'])) 
    die("Access not allowed for not logged in members"); 
+0

感謝您的回覆,所以我的'getstafflogin'頁面處理我放置$ _SESSION ['staffId']的窗體?並在其他頁面我刪除我寫上面的代碼,並把 if(isset($ _ SESSION ['staffId'])) else die(「Access not allowed」); 對不起,我試圖教我自己的愚蠢問題,我很新!確切地說,是 – user3527721

+0

。當員工登錄時,只有您設置了$ _SESSION ['staffId']。對於普通用戶,你根本不設置它。請記住,普通用戶可以在不登錄的情況下訪問「用戶頁面」。 – Aris

+0

非常感謝您的幫助,它意味着很多!當我將代碼放入另一頁時,我收到了我寫'else'的行的語法錯誤:解析錯誤:語法錯誤,/home/unix/student10/w122856/public_html/STF/DropDown.php中意外的T_ELSE在線7 – user3527721