Php if'的负载;s、 可以吗?

Php if'的负载;s、 可以吗?,php,html,dashboard,Php,Html,Dashboard,我有一个登录表单,我设计的网站让每个用户都有自己的仪表板 登录后,我检查 if($_POST['username']=="ryan") { redirect to ryan;s dashboard } if($_POST['username']=="jpn") { redirect to jpn;s dashboard } 等等,1500个用户名。可以吗?将名称和仪表板URL放入数据库中。根据发布的名称和重定向进行一次查询以查找URL。您将有4行代码,而不是6000行。否。如果您真的需要在15

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

登录后,我检查

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

等等,1500个用户名。可以吗?

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

否。如果您真的需要在1500个不同的例程之间进行选择,您应该使用类似的代码


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

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


您应该使用获取用户仪表板的脚本,并且只向该脚本发送用户id

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

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


dahsboard php 

welcome <?=$_POST['username']?>,
...
..
user spesific things..
登录php。。。。
如果($_POST['username']))
{
重定向到仪表板
}
dahsboard php
欢迎
...
..
用户特殊的东西。。

如果您为1000个用户尝试代码,您会感到疲劳。

首先,我建议您使用以下语句,而不是以这种方式执行多个
if
语句:

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

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

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


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

如果您想在每次获得新用户时为自己增加大量额外工作,这是很好的。这些仪表盘的名称是什么,它们是否与用户的名称相关,或者您是否有仪表盘用户名的查找表?与用户的名称相关。当然,这会起作用。请记住,每次新用户在你的应用程序上注册时,你都必须添加代码。。。考虑到您最好使用
重定向到($\u POST['username')和函数以什么方式关联?你是在检查用户名是否有效,还是只是让用户在字段中键入他们想要的任何内容,以便ryan在键入jpn而不是自己的名字时可以看到jpn的仪表板?我认为这不是一个正确的答案。这比其他人试图使代码符合有缺陷的架构更有意义嘿,这是一个好主意。在我运行查询并检查用户并从数据库获取链接后,如何重定向用户?我应该使用PHP的header函数吗?你可以这样做,但是我的答案更安全,因为你也在请求密码。您也只有一次仪表板代码(在一个文件中),但只加载用户数据。您可以调整会话长度以满足您的需要—假定默认值为用户注销前15或20分钟。我的意思是用Dans的方式,如果一个用户知道另一个用户的用户名,他们就可以很容易地访问另一个用户的仪表盘。只是对这个问题有了另一个想法。。。首先,所有仪表板通用的代码必须复制1500次(假设它们是完全不同的页面),常见的更改必须复制1500次。。。其次,如果仪表板URL“模式”发生变化,会发生什么情况。例如/dashboard/name.htm到/dash/name.htm?这是许多更改中的一个,这些更改不能通过在数据库中进行简单的查找/替换来完成。如果只有一个URL适合所有人,那么这将是不必要的工作,如果URL发生变化,则只需改变一次。为什么与我的答案相比,这个答案有这么多赞成票?是否有其他人可以看到但我看不到的文本?是不是说4行而不是6000行?我会修改我的,所以上面写的是这样的,但我不能指定一个确切的数字。这将节省5996行以上的代码…因为它是第一个写的,问题作者首先对它进行了评论,这是一个简单的,惊人的想法。我已经在会话变量中存储用户名和密码。如何基于此重定向?您只需重定向到www.your-domain.com/dashboard.php并根据存储在中的值加载用户数据,例如,
$\u会话[“用户名”]
$\u会话[“密码”]
。我不确定这些变量名的用户名和密码是否安全,因为我自己不是PHP专家,但你可能想将它们命名为黑客无法预测的名称。如何使不同用户的数据不同?很抱歉问了这么一个愚蠢的问题,不管你在仪表板页面上有什么共同点,比如布局。例如,如果他们有点,那么您可以将其按用户名存储在数据库中,并引用他们输入的用户名旁边的点。因此,您在users表(数据库中)中获取包含用户名的行,并输出存储在该行的points列中的值。你对这个项目没有太多的概述,所以points只是一个例子,但你可以用你想要的任何东西来代替它。至于问一个愚蠢的问题,我们都曾经去过——不管我们多么否认它!过去我自己也问过我的公平份额!我想我只问了一个非常愚蠢的问题,但有几个稍微愚蠢的问题。