if的负载,可以吗?

时间:2010-12-15 10:18:46

标签: php html dashboard

我有一个登录表单,我设计的网站每个用户都有自己的仪表板。

登录后,我检查是否

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

依此类推1500个用户名。好吗?

6 个答案:

答案 0 :(得分:4)

将名称和仪表板URL放在数据库中。根据发布的名称和重定向进行一次查询以查找URL。你将有4行代码而不是6000行。

答案 1 :(得分:1)

没有。如果您确实需要在1500种不同的例程中进行选择,则应使用类似strategy pattern的内容。

但是,在您的情况下,它只是使用不同数据的相同例程(加载用户的仪表板)。程序应该是相同的。为什么需要不同的代码来加载每个用户的仪表板?

答案 2 :(得分:1)

认为这是你设计中的一个问题......这样的事情永远不会发生:)

您应该使用一个脚本来获取用户仪表板,并仅将用户ID发送到该脚本!

答案 3 :(得分:1)

首先,我建议使用这样的switch语句,而不是这样做多个if语句:

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

其次,我不建议那样做来重定向到某人的信息中心。您应该有一个公共仪表板和一个包含用户名和仪表板详细信息的表。然后使用用户名调用单个函数。

答案 4 :(得分:0)

您应该重定向到1个信息中心。然后在仪表板中使用此值

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


dahsboard php 

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

如果您尝试1000个用户的代码,您将会感到疲倦..

答案 5 :(得分:0)

您可以做的是将用户名保存在会话变量中,并根据会话变量加载用户仪表板。假设您也要求输入密码,则应保存用户名和密码。检查它们是否正确并加载该特定用户的仪表板。

如果他们被重定向到例如www.your-domain.com/jpn.html,这是不安全的a)它可以被搜索引擎索引并出现在搜索结果中b)更重要的是所有用户都可以只需键入用户URL即可访问彼此的仪表板。