代码之家  ›  专栏  ›  技术社区  ›  Sudantha

在PHP中重定向页面

php
  •  0
  • Sudantha  · 技术社区  · 15 年前

    有没有一种方法可以在不使用 header('Location:'.''); 因为它总是使会话出现问题(:无法发送会话缓存限制-已发送头)

    3 回复  |  直到 15 年前
        1
  •  3
  •   Gumbo    15 年前

    在HTML中还有其他重定向选项(比如使用 META 或者JavaScript)。但这不是一个正确的HTTP重定向。

    因此,与其寻找替代方案,不如让HTTP变量正常工作。在这种情况下,您只能修改尚未发送的HTTP头。每当你做一些输出(显式或隐式)时就会发生这种情况。可以通过缓冲调用输出控件的输出来防止这种情况 ob_start 之前 任何输出都已发生,可能直接发生在您请求的脚本文件的开头:

    <?php
    ob_start();
    
    // rest of the file
    

    确保在打开PHP标记之前没有任何内容 <?php 像空行或 UTF BOM .

        2
  •  2
  •   aefxx    15 年前

    不,没有 header 你运气不好(你可以使用Apache的mod_rewrite,但那会在你的文件被触摸之前发生)。

    为什么不使用 ob_start (输出缓冲)。见 PHP manual 一个快速的开始。

    祝你好运

        3
  •  1
  •   martynthewolf    15 年前

    如前所述,在应用程序页面的最顶部使用ob_start()。不要实现其他答案中提到的不可靠的javascript函数,我认为它们是非常糟糕的实践。PHP已经存在一段时间了,因此它已经测试并运行,您可能有错误的空白,或者正在向浏览器输出一些内容,然后尝试修改您无法完成的头信息。所以:

    使用ob_start 检查错误的空格并将其删除

    推荐文章