Php 回显后无法取消设置会话变量

Php 回显后无法取消设置会话变量,php,html,session,unset,Php,Html,Session,Unset,我在会话变量中存储了一条错误消息,我只想显示一次。我的方法是检查它是否在那里,然后回显它,然后取消设置 会话在标头中声明。标题在任何其他内容之前发送,echo'ing content/或仅包含文本(例如HTML)将结束标题。这意味着您不能在echo'ing之后更改会话 不过,使用PHP还是有办法的。在脚本的开头使用ob\u start(),在脚本的结尾使用ob\u end\u flush()。使用这些功能,您可以在回显内容后编辑会话 有关更多信息,请参阅 编辑: 正如@ccKep所说,在发送

我在会话变量中存储了一条错误消息,我只想显示一次。我的方法是检查它是否在那里,然后回显它,然后取消设置



会话在标头中声明。标题在任何其他内容之前发送,
echo
'ing content/或仅包含文本(例如HTML)将结束标题。这意味着您不能在
echo
'ing之后更改会话

不过,使用PHP还是有办法的。在脚本的开头使用
ob\u start()
,在脚本的结尾使用
ob\u end\u flush()
。使用这些功能,您可以在回显内容后编辑会话

有关更多信息,请参阅

编辑:

正如@ccKep所说,在发送标题后,您仍然可以更改
$\u SESSION
变量(
$\u SESSION['something']='else'
)。发送邮件头后,您无法启动或销毁会话。

如果您还没有关闭所有页面,则需要启动会话检查错误,然后-查看html源代码,
var\u dump()
和echo都是有用的调试工具。如果($\u session['msg']['signin-error']!=”,您还需要执行两次
if($\u session['msg']['signin-error']!=)
我们不知道这些会话数组设置在何处/如何设置。是的,我知道。我已经尝试了很多方法,这就是其中之一。这可能有点让人困惑,当然,即使已经发送了输出,您也可以更改
$\u SESSION
变量。必须在它前面的是
会话\u start
(因为它在cookie中声明了会话id)。