我有一个登录表单,我设计的网站每个用户都有自己的仪表板。
登录后,我检查是否
if($_POST['username']=="ryan")
{
redirect to ryan;s dashboard
}
if($_POST['username']=="jpn")
{
redirect to jpn;s dashboard
}
依此类推1500个用户名。好吗?
答案 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即可访问彼此的仪表板。