在所有网址中保留get参数

时间:2012-10-25 09:02:29

标签: url parameters assign

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

我必须在我的文件夹中添加主题:

-ThemeA -ThemeB

要运行测试,我需要通过另一个url表单themeA。

访问themeB

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

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

现在我可以输入以下内容来访问themeb:www.myshop.com/?ab

我的问题是,每当我点击链接时,?ab参数都会丢失,然后会返回模板A.

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

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

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

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

如果在“主题检查”之前启动会话([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>