2014-12-31 33 views
0

我正在嘗試在php中根據成員資格將用戶重定向到php文件。有兩個成員資格文件根據從數據庫讀取的成員身份顯示不同的HTML頁面。當用戶註冊時,它是membership1.php或memebrship2.php。其中之一將在數據庫中標記爲1。php登錄文件,取決於用戶的會員資格

注:我不知道,如果這是一個正確的做法(兩個文件或在同一個?)

我遇到的問題是,我是否符合membeship1或會員資歷登錄我依然可以打開網頁通過編輯該網址到其他成員。 // site/membership1 edit to> // site/membership2將以該內容打開。

我不希望任何成員的用戶打開其他頁面。

有人可以幫忙或建議嗎?

謝謝

+4

爲什麼不只是做1個文件,並且只顯示取決於成員類型的頁面數據:'if(is_membership1()){....} else if(is_membership2()){...}'。這樣他們只能看到他們的會員類型,並且沒有其他頁面需要監控 – Sean

回答

1

您可以在單個頁面上顯示取決於成員資格的信息。由於會員類型存儲在數據庫中,你可以定義一個變量,代表1或2。所有你需要做的就是把這個代碼放到頁面烏爾:

include($_SERVER['DOCUMENT_ROOT'].'/path/to/membership'.$type.'.php'); 
+0

這與上面的肖恩的評論相結合似乎是最佳方法。一個URL,多個狀態。使用include可以讓你獲得單獨文件的好處。 –

+0

謝謝你們。 「包含」代碼會隱藏php文件嗎?我的意思是它會顯示網址中的文件?基本上我不希望用戶輸入其他成員身份的php文件名到url中,並按照他們的喜好重新定向。我可能需要查看Victor提到的那些權限。我已經用php?id =嘗試過了,但是如果我更改了ID號碼,它仍然會這樣做。 – ppstacknow

+0

@ppstacknow它會隱藏網址,甚至mozilla螢火蟲不會顯示電子郵件 – lolbas

0

一種解決方案是創建用戶組,訪問權限(在你的情況下這些組會成員)。如果這兩個頁面有一些共同點,則將URL訪問保留在一個文件中,並且該文件根據用戶所屬的組顯示內容。

只需在數據庫中爲組(具有名稱和ID)創建一個表,在用戶表中創建一個將其與ID(外鍵)組相關聯的字段,並通過設置索引獲得許可以及它屬於哪個組(加上一個外鍵)。

這是一個簡單但有效的方法。建議進一步研究權限和訪問系統。

0

好的,我想先謝謝你們。我確實通過檢查數據庫中的值來使用if(is_membership1()){....} else if(is_membership2()) {...}。但是我無法將include($_SERVER['DOCUMENT_ROOT'].'/path/to/membership'.$type.'.php');作爲我的服務器指向其他地方。

所以我保留這兩個文件使用header ('Location: membership1.php)和其他header ('Location: membership2.php)和它的工作,但我仍然有問題,只需在URL中輸入任何會員文件,然後打開的名稱。

我所做的是經過我的功能is_logged_in if(isset($_SESSION['loggedin']) == true {return true;}添加$_SESSION['username'] = $_POST['username'];然後通過用戶名會員頁面,我可以對證在數據庫中,如果他是會員資歷或2 終於在我加了如果每個成員文件語句,例如在membership1中我添加了if ($resultfromdatabase==2){header ('Location: membership2.php) exit;},它只是重定向到membership2頁面而不打開membership1頁面。

這是一個很好的方法嗎?

相關問題