【问题标题】:Keep get parameter in all url在所有网址中保留获取参数
【发布时间】:2012-10-25 09:02:28
【问题描述】:

我正在使用 prestashop,我想运行 a/b 测试。这意味着您在将 50% 的流量重定向到模板 A 和 50% 的流量重定向到模板 B 的同时测试您网站的 2 个不同模板。

我必须在我的文件夹中设置主题:

-主题A -主题B

要运行测试,我需要通过不同的 url 表单 themeA 访问 themeB。

所以在“/config”文件夹中,我修改了文件setting.inc.php,如下所示:

if(isset($_GET['ab'])) { define('_THEME_NAME_', 'themeB'); } else{ define('_THEME_NAME_', 'themeA'); }

现在我可以通过键入以下内容访问主题:www.myshop.com/?ab

我的问题是,每当我点击一个链接时,?ab 参数都会丢失,它会返回到模板 A。

我发现有人使用另一个 cms 解决了使用此代码的问题:

`$this->redirect(array('name')); `

但我不知道如何使其适应 prestashop 以及我应该把它放在哪里。

任何帮助将不胜感激。

谢谢

【问题讨论】:

    标签: url parameters assign


    【解决方案1】:

    如果会话在您的“主题检查”之前启动 ([http://sg3.php.net/manual/en/function.session-start.php][1]),则一个快速的解决方法可能是使用会话。

    // Page => watermelons.php    
    <?php
    session_start();
    
    if(isset($_GET['ab']) || isset($_SESSION['ab'])) {
        $_SESSION['ab'] = 'themeB';
        define('_THEME_NAME_', 'themeB');
    } else{
        define('_THEME_NAME_', 'themeA');
    }
    
    echo _THEME_NAME_;
    
    ?>
    <br /><a href="coconuts.php">go to coconuts</a>
    
    
    
    // Page => coconuts.php    
    <?php
    session_start();
    
    if(isset($_GET['ab']) || isset($_SESSION['ab'])) {
        $_SESSION['ab'] = 'themeB';
        define('_THEME_NAME_', 'themeB');
    } else{
        define('_THEME_NAME_', 'themeA');
    }
    
    echo _THEME_NAME_;
    
    ?>
    <br /><a href="watermelons.php">go to watermelons</a>
    

    【讨论】:

    • 好吧,这很奇怪,它并没有改变任何东西:我通过输入 www.myshop.com?ab 进入主题 B。当我点击一个链接时,参数会丢失,它会在没有参数的情况下返回到 themeA
    • 我用过:session_start(); if(isset($_GET['ab']) || isset($_SESSION['ab'])) { $_SESSION['ab'] = 'themeB';定义('THEME_NAME', 'themeB'); } else{ 定义('THEME_NAME', 'themeA'); } 但它也没有工作
    • 再次感谢您的帮助。问题是 prestashop 正在使用 .tpl 文件,我无法将 php 放入其中。我尝试使用 session_start();在我的 .tpl 文件的最顶部,但我也没有机会。 prestashop cms 的构建方式使我很难使用您发送给我的链接中解释的会话...
    猜你喜欢
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-13
    相关资源
    最近更新 更多