【问题标题】:header() function not working after $_SESSION [closed]$_SESSION 后 header() 函数不起作用 [关闭]
【发布时间】:2013-05-04 08:09:00
【问题描述】:

我有一个大问题,我无法解决。我制作了一个简单的登录脚本,它可以在我笔记本电脑的 LAMP 服务器上运行。我很高兴,我将它上传到我的主机,但我无法登录。我解决了 header() 在 $_SESSION 之后不起作用。我当前的测试代码没有任何登录和一切:

 <?php
 session_start();
 $_SESSION['test'] = 10;
 header("Location: anything.php");
 ?>

而且它不会重定向。问题出在哪里?

【问题讨论】:

  • 你能描述一下不工作吗?你得到什么错误?
  • 没什么。只是不重定向
  • 我认为它的标头已发送问题
  • 但它在我的笔记本电脑上运行良好
  • 这是您的 php 文件中唯一的代码吗?如果是,没有理由不工作。所以我相信还有更多,请发布完整的代码。

标签: php session


【解决方案1】:

问题可能是标头已经发送。也就是说,session_start 发送了几个 HTTP 标头。来自http://php.net/manual/en/function.session-start.php

此函数根据 配置。请参阅 session_cache_limiter() 以自定义这些标头。

尝试使用error_reporting(-1); 打开所有警告和错误(这应该会给您一个警告)。无论如何,在开发期间这样做是一种很好的做法。

如果不是这样,那么您必须在标头之前发送一些输出。虽然,看看你提供的示例代码,情况可能并非如此。

有关该问题的更多信息,请参阅this very nicely answered question

【讨论】:

    【解决方案2】:

    这很奇怪。头函数之前一定有错误。在任何标头调用将标头发送到浏览器之前发生错误,并且您的 php 标头功能将不起作用。您可以尝试使用 javascript 进行重定向。

    <?php
    your_code.....
    echo "<script type='text/javascript'>document.location='http://youdomain/anything.php';</script>";
    ?>
    

    【讨论】:

    • 我不知道为什么对这个答案投了反对票?
    • 我也不知道为什么我被禁止进入社区..
    • 奇怪的事情发生了
    猜你喜欢
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 2016-07-17
    • 2013-11-05
    • 1970-01-01
    相关资源
    最近更新 更多