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)。