已解决 | 更新:由于要找到解决方案并不容易,因此我在下面发布了答案。希望这将有助于其他人在stackoverflow上更轻松地找到解决方案。
我有自己的功能来设置和显示消息。这些消息存储在会话中。我想要实现的是在提交表单后立即显示一条消息。除非我使用header()函数重新加载页面或重定向到另一个页面,否则它会起作用。
我在标题的顶部使用ob_start()
和session_start()
。所以这两个一直都在。
我的信息是通过以下功能设置的。它会创建一条成功或危险类型的消息,并将其存储在会话变量中。
protected function setMsg($text, $type) {
if($type == 1) {
$_SESSION["message"] = '<div class="alert green"><p>'.$text.'</p></div>';
} elseif($type == 0) {
$_SESSION["message"] = '<div class="alert red"><p>'.$text.'</p></div>';
}
}
另一个功能仅显示一次消息,之后将其取消设置。
public function showMsg() {
if(isset($_SESSION["message"]) && !empty($_SESSION["message"])) {
echo $_SESSION["message"];
unset($_SESSION["message"]);
}
}
这是我的表单提交代码的最后一部分:
$this->setMsg("User has been created", 1);
header("Location: users_list.php");
如果我不使用header()
函数,那就没问题了。但是我必须使用它。
消息功能在标题中被调出,但在所有其他功能下面:
<?php $data->showMsg(); ?>
因此,页面似乎以某种方式被重定向了两次。第一次设置该消息后,第二次刷新后,我看不到它。所以我根本看不到。
我做错什么事情了?
答案 0 :(得分:1)
最后我明白了。在这种情况下,我只需要在调用numpy.hstack
函数之后立即插入Settings (Preferences on macOS) | Editor | General | Strip trailing spaces on Save
。就是这样。