【问题标题】:how to hide the warning message for the session? [duplicate]如何隐藏会话的警告消息? [复制]
【发布时间】:2012-09-05 12:18:06
【问题描述】:

我收到如下警告消息,如图所示,我认为这是由于添加了额外的会话变量 (session_start),所以我想要隐藏该警告。

实际上,如果我在开始时没有给出会话以获取用户会话,但如果没有给出,则会话未设置,但添加时会发出警告。可能是什么问题?

代码:

    <?php
    session_start();
    include("connect/config1.php");
?>

【问题讨论】:

  • 所以您只想隐藏警告而不是实际修复它?我希望你不会因为这项工作而获得报酬......

标签: php session session-variables mysql-error-1064


【解决方案1】:

您必须将session_start() 放在文档的开头。在此调用之前必须没有输出。

隐藏消息并不能解决您的问题。

如果您只想隐藏警告:

<?php
ini_set('error_reporting', 0);
ini_set('display_errors', 0);
?>

查看您的fullsearch.php,开头可能有一个空行(&lt;?php 之前)。删除它。

【讨论】:

  • 恭喜你建议 OP 如何在脚上开枪。
  • 我不同意。我的“建议”是通过提示如何解决问题来解决问题。不过,有时隐藏警告很有用(不在开发中,可能不会出现此错误),因此我回答了这个问题。
  • 我明白你的原因,但禁用 error_reporting 而不记录这些错误(以任何方式)是一个非常危险的策略。而且,不幸的是,我遇到了一些代码,所有垃圾都被扫到地毯下——并非没有后果。
【解决方案2】:

永远不要尝试在开发环境中隐藏警告:它们在寻找错误方面非常有用。例如,如果没有这个特别的警告,您可能永远不会知道为什么实际上没有发送与会话相关的标头(换句话说,为什么会话不起作用)。

改为消除显示警告的原因。这个特殊的警告很可能是由在您可信赖的&lt;?php 代码分隔符前面爬行的恶意空格引起的。这意味着服务器已经开始向客户端输出一些内容,但您希望他们返回发送标头...

所以检查你的文件并确保在调用session_start() 之前没有 被回显。 This discussion 可能会很有帮助。 )

更新:

事实上,你在问题中引用的代码已经很清楚了:

   <?php
    session_start();
    include("connect/config1.php");
?>

看,&lt;?php 前面是空格。这意味着服务器将实际发送这些符号(在 HTTP 响应正文中),然后才开始解析脚本本身。但随后它会被指示发送 headers - 并因这个警告而大喊大叫。

解决方案很简单:删除空格。这样不仅警告会消失,而且会话也将开始工作。 )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2013-07-17
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多