【问题标题】:PHP Javascript page loads twicePHP Javascript 页面加载两次
【发布时间】:2011-09-15 18:24:02
【问题描述】:

我已经编写了这个小网站,包括注册和所有内容,但我觉得我不太确定发生了什么。 首先是数据库向我报告我试图写入数据库的用户有一个重复的条目(它应该是唯一的),这真的让我感到困惑,我怎么会有重复的?好。我花了三天时间才意识到这个页面被调用了两次!

我放了一个

$_SESSION['one']=0;

还有一个

$_SESSION['two']=0;

相应地位于页面的最顶部和最底部。 然后我把它们都改成了++,这样我就可以检查它们通过了多少次。

我使用了网站发送的电子邮件中的验证链接,并测试了它们的值。

奇怪的是,'one' would equal 2 and 'two' would equal 1...

这准确解释了为什么所有注册都有效,但我得到了关于这些重复项的所有错误。 虽然,我使用 firebug 来跟踪任何重定向,但什么也看不到...... 它显示该页面有 12 个 GET 和一个 POST。 我希望遇到重定向并相应地进行调试,但是唉,或者我不知道如何使用 firebug 来跟踪这些重定向......

我将不胜感激任何建议 提前致谢!

【问题讨论】:

  • 由于您使用的是firebug,如果您打开“Net”选项卡并使用重新加载按钮刷新页面,它会加载“Net”选项卡然后重新加载吗?
  • 我建议显示更多代码..?
  • 如果你把按钮放在a里面,当你点击按钮时浏览器会向服务器发送2个请求。也许它会关闭第一个请求的连接,这就是“两个”没有增加的原因。
  • 不了解您的注册结构和流程无法回答,我们需要知道您是否使用OO等...
  • 不相关,但是如果您的数据库中有重复的条目,那么您需要重新设计您的架构。使用密钥防止重复。

标签: php javascript redirect


【解决方案1】:

就像我在 cmets 中所说的,这是对我和 Ted 有用的答案:

我的解决方法是将我的 doctype 更改为 html 5,然后使用 w3c 验证器验证页面,这个问题只发生在我使用 firebug 的 firefox 中。

【讨论】:

    【解决方案2】:

    你有一些<img><script>src="" 吗?或者可能是一些 <link> 样式表与空 href

    萤火虫是否在网络标签中向您显示您的网站被调用了两次?

    【讨论】:

    • 我正在检查为什么页面加载两次,我不太清楚如何用firebug看到它,看起来页面在php中加载了两次,如果是javascript那么我会通过萤火虫知道的吗?
    • 不,没有显示它加载了两次,但我确信 php 运行了两次。这些空链接是否容易重新加载页面?
    • 如果这个页面是 index.php,那些空链接只是作为图像、脚本或链接再次加载页面。如果您在 firebug net 选项卡中没有它,那么我的回答将无济于事。如果可以对您的脚本进行一些在线版本或在您的问题中粘贴代码或尝试评论一些代码片段并重复情况 - 您应该弄清楚这是什么片段,然后也许我们可以帮助您:)
    • 查找@jeffreydev 解决方案,这很可怕
    【解决方案3】:

    这类问题通常发生在您遇到致命或其他不可忽视的错误时,迫使 PHP 在处理请求的过程中提前终止您的脚本。

    查看错误日志以了解发生的详细信息。

    【讨论】:

      【解决方案4】:

      导致页面加载两次的是 Firebug。显然将文档类型更改为 html5 作为:

      而不是 html4 覆盖了该错误。 当您要部署您的站点时,请返回到 html 4,当然,请始终确保服务器免受此类错误的影响。在需要时使用数据库约束、验证和转义。 希望这会有所帮助,非常感谢@jeffreydev!!

      【讨论】:

        猜你喜欢
        • 2011-08-28
        • 2014-02-24
        • 2013-08-17
        • 1970-01-01
        • 1970-01-01
        • 2014-12-20
        • 2011-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多