将app_id隐藏到用户并相应地调整内容

时间:2014-02-12 15:02:49

标签: php

我有一个应用程序,当用户连接时,我希望根据某个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显示正确的元素。

感谢您的帮助

1 个答案:

答案 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”,只需定义一个新的应用程序类并将其定义到工厂方法类中。 因此,它也不会感染您的整个代码库,因为您封装了应用程序实例的创建,并且您可以在整个代码库中轻松使用该实例(当然,如果需要)

我希望这会对你有所帮助