2010-12-15 45 views
3

我有一個登錄表單,我設計了我的網站,使每個用戶都有自己的儀表板。負載如果的,是否可以?

登錄後,我檢查是否

if($_POST['username']=="ryan") 
{ 
redirect to ryan;s dashboard 
} 
if($_POST['username']=="jpn") 
{ 
redirect to jpn;s dashboard 
} 

等for1500用戶名。它很好嗎?

+1

如果您希望每次獲得新用戶時都自己承擔額外工作量,這很好。這些儀表板的名稱是什麼,它們是與用戶的名稱相關的,還是您有一個用戶名查找表到儀表板? – 2010-12-15 10:21:23

+0

與用戶的名字相關。 – ryan 2010-12-15 10:22:06

+0

當然會起作用。請記住,每次有新用戶註冊您的應用程序時,您都必須添加代碼...因爲您最好使用類似'redirect_to($ _ POST ['username']);'並且有相關功能 – acm 2010-12-15 10:23:13

回答

4

將名稱和儀表板URL放入數據庫中。根據發佈的名稱和重定向進行一次查詢以查找URL。您將有4行代碼,而不是6000.

+0

嘿,那是個好主意。在運行查詢並檢查用戶並從數據庫獲取鏈接後,我如何重定向用戶?我應該使用PHP的標題功能嗎? – ryan 2010-12-15 10:24:21

+0

你可以這樣做,但我的答案更安全,因爲你也要求輸入密碼。您還只有一次儀表板代碼(在一個文件中),但只加載用戶數據。您可以調整會話長度以適應您的需求 - 認爲用戶註銷前的默認時間爲15或20分鐘。我的意思是使用丹斯的方式,如果一個用戶知道他人的用戶名,他們可以很容易地訪問另一個用戶儀表板。 – ClarkeyBoy 2010-12-15 10:28:49

+0

剛剛在這個問題上有了另一個想法......首先,所有儀表板共用的代碼必須重複1500次(假設它們完全是不同的頁面),而常見的更改必須重複1500次...其次是什麼如果儀表板URL「模式」發生更改,則會發生。例如/dashboard/name.htm到/dash/name.htm?這是一個很大的改變,它不能用數據庫中的簡單查找/替換來完成。這可能是不必要的工作,因爲它可能只有1個URL適合所有人,如果URL更改則更改一個。 – ClarkeyBoy 2010-12-15 10:44:59

1

不。如果您確實需要在1500個不同的例程之間進行選擇,則應該使用類似strategy pattern之類的內容。

然而,就你而言,它只是與不同的數據相同的例程(加載用戶的儀表板)。程序應該是一樣的。你爲什麼需要不同的代碼來加載每個用戶的儀表板?

1

認爲這是在你的設計有問題......這樣的事情是不可能發生的:)

您應該使用獲取用戶儀表盤和腳本只發送用戶ID到該腳本!

+0

認爲這不是一個正確的答案。 – acm 2010-12-15 10:24:05

+0

它比其他人試圖使代碼適合有缺陷的架構 – symcbean 2010-12-15 13:02:29

0

您應該重定向到1個儀表板。那麼,如果你嘗試你的代碼爲1000的用戶,你會感到累使用該值在儀表盤

login php .... 
if($_POST['username']) 
{ 
redirect to dashboard 
} 


dahsboard php 

welcome <?=$_POST['username']?>, 
... 
.. 
user spesific things.. 

..

1

第一,而不是做多的if語句的方式,我建議使用switch聲明是這樣的:

switch($_POST['username']) 
{ 
    case "ryan" : //redirect to ryan;s dashboard 
    case "jpn" : //redirect to jpn;s dashboard 
} 

其次,我不建議這樣做,在所有重定向到一個人的儀表板。您應該有一個共同的儀表板和一個包含用戶名和儀表板詳細信息的表格。然後用用戶名稱調用單個函數。

0

您可以做的是將用戶名保存在會話變量中,然後根據會話變量加載用戶儀表板。假設你也要求輸入密碼,你應該保存用戶名和密碼。檢查它們是否正確,併爲該特定用戶加載儀表板。

如果它們被重定向到例如www.your-domain.com/jpn.html,則這是不安全的,因爲a)它可以被搜索引擎索引並出現在搜索結果中,並且b)更重要的是所有用戶只需輸入用戶URL即可訪問其他儀表板。

+0

的想法更有意義。我已經在會話變量中存儲了用戶名和密碼。我該如何重定向? – ryan 2010-12-15 10:29:36

+0

您只需重定向到www.your-domain.com/dashboard.php並根據存儲在例如'$ _SESSION [「用戶名」]'和'$ _SESSION [「密碼」]中的值加載用戶數據' 。我不確定用戶名和密碼對於這些變量名是否安全,因爲我本人不是PHP專家,但是您可能想將它們命名爲黑客不可預知的內容。 – ClarkeyBoy 2010-12-15 10:31:46

+0

我如何爲不同的用戶提供不同的數據?對不起,問這樣一個愚蠢的問題 – ryan 2010-12-15 10:35:16

相關問題