我有一个应用程序,当用户连接时,我希望根据某个app_id
显示两个不同的内容。我不希望向用户显示app_id
(因此他将无法修改它)。因此,我不想将其作为queryString发送。应用程序主文件为index.php
。因此,当用户访问index.php
时,我想根据app_id
调整内容。知道我如何将app_id
传递给index.php
,而不向用户显示?
我在考虑$_SESSION
,但因为只有一个index.php
文件,我真的不能这样做:
if($_SESSION['app_id'] == 1)
{
// call index.php file of app 1
}
else
{
// call index.php file of app 2
}
我不想复制内容。我希望将所有内容保存在同一个文件中,并使用条件根据app_id
显示正确的元素。
感谢您的帮助
答案 0 :(得分:0)
因为http是无状态的,并且在查询字符串中传递app_id不是你的选择,我建议下一个概念。
将app_id存储在会话或cookie中;如果您介意用户可能无法修改app_id,我建议通过cookie进行会话。因为用户可以修改cookie的值,所以最终会出现同样的问题。
将app_id存储到会话中并将app_id值加载到工厂方法模式中;
在这里检查“fatcory方法”的设计模式的进一步说明; http://sourcemaking.com/design_patterns/factory_method
基本上,设计模式负责创建所需的“app_id”实例。通过这种方式,您可以更好地组织代码,如果您有一个新的“app_id”,只需定义一个新的应用程序类并将其定义到工厂方法类中。 因此,它也不会感染您的整个代码库,因为您封装了应用程序实例的创建,并且您可以在整个代码库中轻松使用该实例(当然,如果需要)
我希望这会对你有所帮助