【问题标题】:Firefox session development issueFirefox 会话开发问题
【发布时间】:2012-05-17 22:17:01
【问题描述】:

我正在开发的网站有一个奇怪的问题。
登录后,用户将被重定向以阅读许可协议。在这个名为 terms.php 的页面中,我有条件地显示一个确认按钮,如果用户已登录,该按钮将用户重定向到名为 agreed.php 的页面,否则:到 register.php

奇怪的是只在 Firefox 中(安装了 firebug)。
登录后,terms.php 的表单将显示action="register.php"!而不是agreed.php,并且我所做的所有检查都表明该用户未登录。 另一个奇怪的事情是,如果我按 F5 刷新,它显示agreed.php! 它不会发生在 IE 和 Chrome 中。

知道这可能是什么吗?

function logged_in() {
    return isset($_SESSION['USER_ID']);
}

function redirect_to( $location = NULL) {
    if ($location != NULL) {
        header("Location: {$location}");
        exit;
    }
}

login.php

if (shouldReadTerms())
    redirect_to("terms.php");

terms.php

    <?php if(logged_in()): ?> 
    <?php if (shouldReadTerms()): ?>
        <form action="agreed.php" method="POST">
    <?php endif; ?>
    <br />
    <br />
    <button <?php if (!shouldReadTerms()) echo 'disabled'; ?>>I Agree </button>
    <?php if (shouldReadTerms()): ?>
        </form>
    <?php endif; ?>
    <br />
    <br />
<?php else: ?>
    <form action="register.php" method="POST">
    <br />
    <br />
    <button>I Agree</button>
    </form>
<?php endif; ?>

【问题讨论】:

  • Any idea what this might be? - 不是没有看到一些代码。
  • 嗨,泰德,请你把代码贴出来

标签: php html firefox


【解决方案1】:

这个错误可能有两个原因。会话和缓存。

如果你确信问题只在FF为启动删除cookies并清除浏览器缓存。

如果这没有帮助添加到terms.php

header("Cache-Control: no-cache, must-revalidate");

如果这也无助于尝试在授权后的每一步查看会话转储。

【讨论】:

  • 我更改了 session.php 以包含该标题行。它成功了。一旦我将该行放入 terms.php 中,错误仍然存​​在。这让我认为它可能与上一页有关......我不确定将这条线放在我的所有页面上是否是一个好主意(我认为缓存确实加快了速度......)但我是不确定我是否完全理解放置这条线的含义。你能建议吗?
  • 此标头禁止使用已声明页面的缓存版本。在所有页面上都使用它并不好。如果之前发送过的数据,从 terms.php 发送标头可能不起作用。尝试从 session.php 发送标头,但仅在此页面上测试此想法。
【解决方案2】:

如果在 IE 或 Chrome 中不是问题,您可以尝试

<meta http-equiv="cache-control" content="no-cache">

在该页面的页眉中。

【讨论】:

    【解决方案3】:

    悲伤但真实: 改变:

    redirect_to("terms.php");
    

    redirect_to("terms.php?".rand());
    

    问题解决了。 虽然不是 100% 肯定为什么。但它现在就像一个魅力

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 2011-04-02
      • 2011-05-29
      • 2013-02-04
      • 2014-11-08
      • 1970-01-01
      相关资源
      最近更新 更多