2014-12-02 193 views
0

我在Windows 7上使用最小版本的php-login:http://www.php-login.net/。當用戶登錄時,登錄驗證並且驗證的響應爲True或False。響應返回的index.php具有這種代碼php-login登錄後選擇頁面

if ($login->isUserLoggedIn() == true) { 
include("views/logged_in.php"); 

我想給用戶一個機會選擇他們到登錄後的頁面,但該頁面只能訪問當用戶登錄任何想法?讓我知道你是否需要更多信息,或者我想要做什麼不清楚。謝謝

=======以下更新========================= 我修改了下面的代碼,以便如果用戶登錄驗證返回true時,用戶被定向到具有這兩個鏈接的頁面,當用戶單擊鏈接時,用戶獲得Access Forbidden錯誤消息。

if ($login->isUserLoggedIn() == true) { 
    include("views/choose-pages.htm"); 
} else { 
    include("views/not_logged_in.php"); 
} 
+0

包含另一個頁面,而不是logged_in.php,或重新設計logged_in.php,在用戶有一個形式,它可以選擇在哪裏跳。處理並重定向。 – vaso123 2014-12-02 12:08:28

+0

'if($ login-> isUserLoggedIn()== true){'已經確認了。包括其他頁面或製作一些'hrefs' – Daan 2014-12-02 12:08:39

+0

我不確定我瞭解如何限制「包含」頁面的基本過程,以及我瞭解該頁面如何限制訪問,但是如果我呈現帶有其他頁面,我向登錄用戶提供一系列指向各種頁面的鏈接,例如,顯示指向blue.php和green.php的鏈接,這兩個php頁面不會僅限於登錄用戶,因爲它們沒有通過通過登錄驗證。至少,就我理解這個過程而言,它似乎起作用。 – user1218122 2014-12-02 12:43:08

回答

1

您可以修改not_logged_in.php並提交2個按鈕,如Google,普通的「Google搜索」和「我感覺幸運」。

<input type="submit" name="login" value="Log in green" /> 
<input type="submit" name="login" value="Log in blue" /> 

然後修改的index.php

if ($login->isUserLoggedIn() == true) { 

if ($_POST["login"] == "Log in green") { 
include("green.php"); 
} else { 
include("blue.php"); 
} 

} 
+0

我喜歡這種方式,我有來自登錄驗證的「真實」響應,但我從哪裏獲得($ _POST [「登錄」]響應?是否有某種方式可以從登錄驗證獲得更多的True/False ?我可以使用單獨的登錄頁面,例如login-green.php和login-blue.php,並在該頁面中放置一個變量或其他內容,但是,我不知道如何將其與True/False一起傳遞。 – user1218122 2014-12-02 14:42:09

+0

只需在not_logged_in.php或您的自定義登錄表單頁面中設置2提交具有相同名稱和不同值的按鈕 – user3173104 2014-12-02 15:13:17

+0

我嘗試過,當用戶登錄時進入驗證並返回「true」到index.php。它們是不同的按鈕,返回的結果是「真」,例如,它不返回「真綠色」,可用於確定哪個按鈕被點擊,它只返回登錄有效的響應。無法爲此修改php-login。也許我n是否使用不同的用戶註冊和登錄腳本? – user1218122 2014-12-02 18:52:39

0

好吧,試着創建一個主頁面(main.php),在這個頁面中寫下選擇頁面的代碼,它的容易!

if ($login->isUserLoggedIn() == true) { 
include("views/main.php"); 
} 
+0

請糾正我,如果我錯了,但我的理解是,如果我包含views/main.php,並且該頁面有鏈接到green.php和blue.php這兩個PHP頁面將可訪問是否用戶登錄? main.php只能被登錄的用戶訪問,但是從main.php鏈接的頁面不可能限制訪問?那是對的嗎? – user1218122 2014-12-02 12:37:38

+0

簡單的民俗,用戶不能訪問任何頁面沒有正確登錄! – BinaryMan 2014-12-02 13:05:21

0

你可以存儲你的頁面的名字/在MySQL數據庫鏈接,然後再得到一個數組mysql數據庫中的網頁鏈接/名稱,並把它後,你的代碼正確的用戶登錄後會EXCUTE 。像這樣:

if ($login->isUserLoggedIn() == true) { 
///Your array of pages here /// 

編輯:

基於您的評論,你可以這樣做:

if ($login->isUserLoggedIn() == false) { 
header(location someotherpage.php) 

你可以把這些代碼在blue.php,green.php等等等等

第二個編輯:

我希望我理解正確的話,如果是這樣,那麼你可以使用這樣的事情:

if ($login->isUserLoggedIn() == false) { 
echo "access denied"; 

你甚至可以用下拉菜單的方式填充你的頁面名稱和鏈接,以便用戶可以選擇一個並進入該頁面。

+0

如果我向登錄用戶提供一系列指向各種頁面的鏈接,例如,顯示指向blue.php和green.php的鏈接,那麼這兩個php頁面不會僅限於登錄用戶,因爲它們沒有通過登錄驗證。至少,就我理解這個過程而言,它似乎起作用。 – user1218122 2014-12-02 12:42:25

+0

請查看我的編輯。 – user3806613 2014-12-02 12:53:36

+0

謝謝,我感謝幫助。下面的代碼會很有用,因爲我想要一個未登錄的用戶轉到特定頁面。但是,我仍然需要給登錄的用戶選擇哪個頁面。我試過:include(「views/choose-pages.htm」);並且當登錄用戶點擊choose-pages.htm上的鏈接時,他們會收到「Access Forbidden」錯誤消息。 if($ login-> isUserLoggedIn()== false){ header(location someotherpage.php) – user1218122 2014-12-02 13:01:32