Firefox中的PHP会话变量更改

时间:2013-10-15 02:11:23

标签: php wordpress firefox session-variables

我已经设置了site,其中包含所服务的每个区域的主页。在Chrome和Safari中,如果您转到服务区域标签并选择服务区域,您将进入该区域主页。

此时会启动会话以存储用户所选区域,如果他们访问网站上的其他页面,它现在会在所选位置的标题中显示特定位置的广告,或者如果他们选择回家,则会将其重定向到他们的选定区域主页。

Firefox中的问题是,如果您选择一个服务区并被带到该区域主页,则从菜单中选择一个不同的页面,设置的服务区域将更改为其他区域。只有在将自定义主页保留到其他菜单页面时才会出现这种情况。

这是设置会话的代码:

session_start();

$cur_url = dd_cur_page_url();

if ('local_home_pages' == get_post_type() && $cur_url != $_SESSION['dd_location']['home']) {
    $cur_url_mod = str_replace('carpet-cleaning_', '', $cur_url);
    $url_parts = explode('/', $cur_url_mod);
    $url_parts_count = count($url_parts);
    $cur_page = $url_parts[$url_parts_count - 2];
    $location_parts = explode('_', $cur_page);
    $place = trim(str_replace('-', ' ', $location_parts[0]));
    $state = trim(str_replace('-', ' ', substr($location_parts[1], 2)));
    $state_parts = explode('-', $location_parts[1]);
    $state_abv = trim($state_parts[0]);
    $county = trim(str_replace('-', ' ', $location_parts[2]));
    $_SESSION['dd_location'] = array(
            'home' => $cur_url,
            'place' => $place,
            'state' => $state,
            'state_abv' => $state_abv,
            'county' => $county);
}

这是重定向代码,只能在通用主页上运行:

session_start();

$cur_url = dd_cur_page_url();

if (is_front_page() && isset($_SESSION['dd_location']['home'])) {
    $location = $_SESSION['dd_location']['home'];
    header('Location:' . $location);
}

1 个答案:

答案 0 :(得分:1)

用firebug进行一些调试后我发现了问题。这是在Firefox的预取。我将以下内容添加到我的.htaccess文件中,现在一切正常。

RewriteEngine on
RewriteCond %{HTTP:X-moz} prefetch
RewriteRule . . [F,L] 

我会写一篇关于这个问题的帖子,告诉我如何找到它,如何修复它,以及为什么它会在接下来的几天内在我的网站http://www.dominant-domains.com上发生,对于那些像我一样想要更多的人而不只是修复。

感谢社区的建议。这是我第一次来这里,这是一个愉快的!干杯