从$ _SERVER ['REQUEST_URI']命名$ _SESSION var会神秘地命名页面“blank.gif”

时间:2012-03-22 04:26:15

标签: php jquery apache

看起来像这么简单的问题,但我没有选择......

所以我想设置一个会话变量来告诉我访问的最后一页。我想我可以通过在每个页面顶部的php include中声明2个会话变量来做到这一点。

    session_start();    
    if(!$_SESSION['this_url']){
           // will only be declared once
           $_SESSION['this_url'] = $_SERVER['REQUEST_URI'];
        }

        if($_SERVER['REQUEST_URI'] != $_SESSION['this_url']){ //dont update var on page refresh
           $_SESSION['last_url'] = $_SESSION['this_url']; 
           $_SESSION['this_url'] = $_SERVER['REQUEST_URI'];  
        }

足够简单吧?但是对于输出它给了我这个:

$ _ SESSION ['this_url'] = /support/interactive.php (正确)

$ _ SESSION ['last_url'] = /products/compatibility/blank.gif (正确的路径,但是blank.gif?wtf?)

它应该输出“/products/compatibility/somepage.php”,但它总是用blank.gif替换页面名称。

我在我的网站上进行了全站搜索,没有其他人使用我的变量名称。我甚至改变了var名称,但结果仍然相同。 blank.gif在一些jQuery脚本中找到 - 所以我怀疑这可能是它的来源。但是仍然......我将这些内容声明为页面上的第一个脚本并在声明它们后立即输出它们。我的Apache服务器搞砸了什么?这没有意义。

非常感谢任何想法,谢谢!

1 个答案:

答案 0 :(得分:0)

嗯,我记得曾经尝试做过这样的事情,而且我和你一样有着奇怪的幽灵问题。我最终做的是使用隐藏的输入并将变量分配给它们。

我不是说使用隐藏的表单元素进行制作,我只是提出一个建议,以防你正在创建的功能是“现在需要”的功能。

我仍然在考虑为什么会发生这种情况,你在运行什么版本的Apache / PHP?